javascript - 在 Node.JS 中使用 HTTP 读取文件

标签 javascript node.js

在我的开发环境中,由于性能原因,我更喜欢从文件中读取数据,而不是从实际的 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/

相关文章:

javascript - 渲染器已弃用,因为渲染器 2 是 `invokeElementMethod` 的替代品?

javascript - 如何在 ng-change 中保留原始值

javascript - ES6 箭头函数返回不同的值

javascript - 在扩展 EventEmitter 的 ES6 类定义中设置事件监听器

node.js - 如何在ejs中获取数据的索引之间切换?

javascript - 如何 - 在成功提交表单后以 jquery ajax 形式发出警报?

javascript - NodeJS : Redirect Client to Another Worker/Instance

node.js - MongoDB/ Mongoose : find(query) and aggregate([ $match: query ]) results differ when using dates and $gte/$lte

javascript - 使用 Pug 打印 Mongoose 数据库中的所有项目

javascript - 通过变量 .-string 插值访问 JSON 数据