当我尝试开始以下脚本时:
var http = require("http");
http.createServer(function(request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
}).listen(8000);
var ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
console.log(ip)
Run Code Online (Sandbox Code Playgroud)
我得到以下错误:
node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
ReferenceError: req is not defined
at Object.<anonymous> (/home/ubuntu/IPDeliverer/server.js:9:10)
at Module._compile (module.js:441:26)
at Object..js (module.js:459:10)
at Module.load (module.js:348:32)
at Function._load (module.js:308:12)
at Array.0 (module.js:479:10)
at EventEmitter._tickCallback (node.js:192:41)
Run Code Online (Sandbox Code Playgroud)
我的第一个猜测是,有一些模块缺失,所以我安装了以下模块:
npm install req
Run Code Online (Sandbox Code Playgroud)
然后我包括以下行
var req = require("./node_modules/req/node_modules/request");
Run Code Online (Sandbox Code Playgroud)
但它仍然无法正常工作.有什么建议 ?
你已经命名了Request request
,而不是req
每个回调都有自己的request
,所以在回调之外检查IP是没有意义的.request
改为在回调中使用:
var http = require("http");
http.createServer(function(request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
var ip = request.headers['x-forwarded-for'] || request.connection.remoteAddress;
console.log(ip)
}).listen(8000);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
21352 次 |
最近记录: |