nodejs 路径问题,奇怪不解。 - CNode技术社区

nodejs 路径问题,奇怪不解。
发布于 11 年前 作者 veiny 12403 次浏览 最后一次编辑是 9 年前 来自 问答

做个小测试: nodejs项目目录结构 nodetest/ index.js handle.js package.json public/template.html

var http = require('http');
var handler=require('./writeResponse');
 http.createServer(function (request, response) {
 response.writeHeader(200,{'Content-Type':'text/html'});
 	handler.writeResponse(response);
 }).listen(3000);
 console.log('Server is Start!');
![writeResponse.js]
 var fs = require('fs');
 function writeResponse(res) {
 var temfile = './public/template.html';###注意这里的路径
 fs.exists(temfile, function (exist) {
 if (exist == true) {
 fs.readFile(temfile, {'encoding': 'utf8', 'flag': 'r'}, function (err, data) {
 data = data.replace(/{title}/g, 'This is Index Page![from template]');
 res.write(data);res.end();
 });
 } else {
 res.write('<h1>This is Error Page!'+temfile+'</h1>');
 res.end();
 }
 });
}
exports.writeResponse = writeResponse;
![package.json]
{
 "name": "nodetest",
 "version": "0.0.1",
 "main":"/index.js"
}
\n```
![问题是在nodetest目录下:"node index.js"程序运行良好
在nodetest上层目录运行:"node nodetest" fs读取未能读取public/template.html文件。
请问含有package.json的文件包,包内的代码如何编码才能确保路径的正确?]我是新手,Why
4 回复

fs模块里的函数 的参数里 相对路径 都是相对于 process.cwd() 的
用__dirname 可以得到当前文件所在的目录

采用path模块混编 __dirname,fs模块是可以处理绝对路径的。

经典问题, requirefs 的相对路径问题, fs 推荐绝对路径寻址,稳定可靠

"main":"/index.js"

这个入口文件路径是否写错了成绝对路径?应该是"./index.js"或"index.js"

回到顶部

AltStyle によって変換されたページ (->オリジナル) /