在我的开发环境中,由于性能原因,我更喜欢从文件中读取数据,而不是从实际的 API 中读取数据。
我尝试这样做:
var path = process.env.NODE_ENV === 'production' ? '/pathToExternalApi...' : process.env.pwd + '/assets/mockdata.json';
http.get(path, function (resFromApi, err) {
var body = '';
resFromApi.on('data', function (chunk) {
//console.log(chunk);
body += chunk;
});
resFromApi.on('end', function () {
//console.log(resFromApi.statusCode + ' path:' + path);
if (resFromApi.statusCode === 200) {
cb(JSON.parse(body));
} else {
cb(null, 'Statuscode: ' + resFromApi.statusCode);
}
});
})
当我尝试针对文件运行时,出现 404 错误。我已经检查过路径是正确的。
何时可以使用 http.get()
从文件中获取数据?我该怎么做呢?
最佳答案
不,您不能直接使用http.get(file_path)
。您可以拥有一个静态 Web 服务器来通过 http 提供文件服务,但这似乎是无稽之谈。
我会这样继续:
if(process.env.NODE_ENV === 'production'){
http.get("/pathToExternalApi", function (resFromApi, err) {
var body = '';
resFromApi.on('data', function (chunk) {
//console.log(chunk);
body += chunk;
});
resFromApi.on('end', function () {
//console.log(resFromApi.statusCode + ' path:' + path);
if(resFromApi.statusCode === 200){
cb(JSON.parse(body));
}else{
cb(null, 'Statuscode: ' + resFromApi.statusCode);
}
});
})
}else{
fs.readFile(process.env.pwd + '/assets/mockdata.json',function(err,data){
if(err)
cb(null, 'Statuscode: ' + err.msg);
else
cb(JSON.parse(data));
})
}
关于javascript - 在 Node.JS 中使用 HTTP 读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34828581/