TypeError:http.listen不是函数:NodeJS

时间:2016-02-06 14:38:04

标签: javascript node.js

我开始学习NodeJS,当我实现第一个脚本时,我收到以下错误:

http.listen(3000,() => console.log('Server running on port 3000'));
     ^

TypeError: http.listen is not a function
    at Object.<anonymous> (C:\Users\I322764\Documents\Node\HelloNode.js:11:6)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:313:12)
    at Function.Module.runMain (module.js:467:10)
    at startup (node.js:136:18)
    at node.js:963:3

相应的脚本如下:

'use strict';
const http = require('http');

http.createServer(
(req, res) => {
    res.writeHead(200, {'Content-type':'text/html'});
    res.end('<h1>Hello NodeJS</h1>');
}
);

http.listen(3000,() => console.log('Server running on port 3000'));

节点的版本是4.2.4

2 个答案:

答案 0 :(得分:1)

当你写: -

 http.createServer(function(req,res){
    res.writeHead(200);
    res.end("Hello world");
});
http.listen(3000);

http.createServer()返回一个名为Server的对象。该Server对象具有可用的listen方法。并且您正尝试从http本身访问该listen方法。这就是它显示错误的原因。

所以你可以这样写: -

var server=http.createServer(function(req,res){
        res.writeHead(200);
        res.end("Hello world");
    });
server.listen(3000,function(){
console.log('Server running on port 3000')
});

现在它将让您的服务器侦听端口3000。

答案 1 :(得分:0)

listen不是http的函数,而是您使用createServer创建的服务器的方法:

var server = http.createServer((req, res) => {
    res.writeHead(200, {'Content-type':'text/html'});
    res.end('<h1>Hello NodeJS</h1>');
});

server.listen(3000,() => console.log('Server running on port 3000'));