gpt4 book ai didi

javascript - 使用请求 promise 获取本地 json 文件

转载 作者:行者123 更新时间:2023-11-29 21:46:50 24 4
gpt4 key购买 nike

我正在制作一个 Node/快速应用程序并使用 npm request-promise 查询一个测试 json 文件. Node 在我的 <title> 中吐出以下错误标签:

错误:<title>Invalid URI "../testJSON/user.json"</title>

我相信我的路径是正确的,所以我不确定为什么它是一个无效的 URI。

我还提供了具有相同问题的整个项目路径 URI:

return rp('http://localhost:3000/app/testJSON/user.json');

用户服务:

module.exports = {

getUserData: function(){
var options = {
uri : '../testJSON/user.json',
method : 'GET'
}
return rp(options);
}
}

用户 Controller :

var User = require('../services/User.service');
User.getUserData()
.then(function(data){
res.render('pages/userdata', {
title: 'User Data',
content: JSON.parse(data)
});
})
.catch(function(err){
console.log(err);
});

路径:

用户服务:projectroot/app/services/userService.js

用户json文件:projectroot/app/testJSON/user.json


更新:尝试使用 Node fs获取本地文件

fs = require('fs');

module.exports.index = function (req, res) {
fs.readFile('../testJSON/user.json', 'utf8', function (err,data) {
if (err) {
return console.log(err);
}
res.render('pages/user', {
title: 'User',
content: JSON.parse(data)
});
});
...

Node 错误:

{ [Error: ENOENT, open '../testJSON/user.json'] errno: -2, code: 'ENOENT', path: '../testJSON/user.json' }

最佳答案

相对路径(以.././ 开头)是相对于当前工作目录 的。如果要读取相对于当前JS源文件的文件,需要在路径前加上__dirname,即当前JS源文件所在的目录:

fs.readFile(__dirname + '/../testJSON/user.json', ...);

或者更详细(但可能更正确)的方式:

var path = require('path);
...
fs.readFile(path.join(__dirname, '../testJSON/user.json'), ...);

关于javascript - 使用请求 promise 获取本地 json 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30851520/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com