段
// Load config
var config = fs.readFile('../config/config.json', 'utf8', function (err, data) {
if (err) throw err;
config = JSON.parse(data);
});
错误:
/Users/jensgryspeert/Documents/STAGE/Raspberry Rest API/config/initializers/server.js:11
if (err) throw err;
^
Error: ENOENT: no such file or directory, open '../config/config.json'
at Error (native)
代码段的位置位于: config / initializers / server.js
config.json文件的位置在: config / config.json
我不明白为什么它找不到json配置文件。 还有一个额外的问题仅供参考。是否可以只需要('../ config.json');没有阅读FS套餐?
答案 0 :(得分:3)
为了确保获取您的文件,您应该使用__dirname。此变量将具有当前js文件所在文件夹的绝对路径值,因此在您的情况下,server.js
,[absolutepathtoyourproject]/config/initializers/
。
因此,您可以使用节点path library:
获得正确的路径var path = require('path');
var pathToJson = path.resolve(__dirname, '../config.json');
// Load config
var config = fs.readFile(pathToJson , 'utf8', function (err, data) {
if (err) throw err;
config = JSON.parse(data);
});
如果它找不到文件,至少你有pathToJson变量来帮助你看看路径不好的原因。
关于你的第二个问题,有可能,并建议你避免阅读和解析文件的麻烦。您甚至可以将其存储在名为config.js
的js文件中作为
var config = { /* your config here */ };
module.exports = config;
在server.js文件中,如果您具有相同的文件层次结构,则可以执行以下操作:
var config = require('../config.js');
答案 1 :(得分:0)
这样做。并且看到它有效。
var config = fs.readFile('../config.json', 'utf8', function (err, data) {
if (err) throw err;
config = JSON.parse(data);
});
或者你可以这样做。
var config = require('../config.json');
console.log(config);