在mac上工作但不在机器上工作 - linux ubuntu - node server

时间:2017-11-01 21:42:31

标签: javascript node.js linux macos

我的http服务器出了问题,这是代码:

var http = require('http');
var url = require('url');
var fs = require('fs');

http.createServer(function (req, res) {
  var q = url.parse(req.url, true);
  var filename = "." + q.pathname;


const request = require('request');


var dpi = "half api code type 1"; 
var ipn = "half api code type 2"; 
var close = "2nd half api code ";



var ipnTable = ['table with links'];


var dpiTable = ['table with links',];





request(dpi+dpiTable[0]+close { json: true }, (err, res, body) => {
  if (err) { return console.log(err); }
  console.log(body.url);
  console.log(body.explanation);
});



  fs.readFile(filename, function(err, data) {
    if (err) {
      res.writeHead(404, {'Content-Type': 'text/html'});
      return res.end("404 Not Found");
    } 
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.write(data);
    return res.end();
  });
}).listen(8080, 'ip / hostname of my machine - idk what to chose');

它在Mac上工作,但我在机器上收到一些错误,请看:

0|serwer2  |     at Server.<anonymous> (/home/ubuntu/smcheck/serwer2.js:10:17)
0|serwer2  |     at emitTwo (events.js:106:13)
0|serwer2  |     at Server.emit (events.js:191:7)
0|serwer2  |     at HTTPParser.parserOnIncoming [as onIncoming] (_http_server.js:546:12)
0|serwer2  |     at HTTPParser.parserOnHeadersComplete (_http_common.js:99:23)
0|serwer2  | Error: Cannot find module 'request'
0|serwer2  |     at Function.Module._resolveFilename (module.js:469:15)
0|serwer2  |     at Function.Module._load (module.js:417:25)
0|serwer2  |     at Module.require (module.js:497:17)
0|serwer2  |     at require (internal/module.js:20:19)
0|serwer2  |     at Server.<anonymous> (/home/ubuntu/smcheck/serwer2.js:10:17)
0|serwer2  |     at emitTwo (events.js:106:13)
0|serwer2  |     at Server.emit (events.js:191:7)
0|serwer2  |     at HTTPParser.parserOnIncoming [as onIncoming] (_http_server.js:546:12)

请帮助我们,我不知道该怎么做......

我试图向一个网站的api发送请求,在mac上我收到未定义的响应 - 可能是因为api服务器正在使用revdns进行身份验证。

问题是,为什么我一直都有同样的问题,如果你知道如何将api服务器的响应放到某个div中,那就太好了。

谢谢,啤酒给所有感兴趣的人。

1 个答案:

答案 0 :(得分:1)

默认情况下,您不能要求全局安装的npm模块

而不是npm install request -gnpm install request --save

它正在您的Mac上运行,可能是因为有一个指向全局node_modules目录的NODE_PATH环境变量。在Linux中,您可以通过以下方式执行此操作:export NODE_PATH=/usr/lib/node_modules(您的计算机上的路径可能不同)