当我运行以下代码时:
var app = require('express')();
var http = require('http').Server(app);
app.get('/', function(req, res){
res.send('<h1>Hello world</h1>');
});
http.listen(3000, function(){
console.log('listening on *:3000');
});
我收到以下错误:
/var/www/html/test.me/public_html/giftcard/index.js:1
rts, require, module, __filename, __dirname) { var app = require('express')();
^
TypeError: object is not a function
at Object.<anonymous> (/var/www/html/test.me/public_html/giftcard/index.js:1:91)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:902:3
此错误是什么意思?表达的路径不正确吗?我有一个包含packages.json
,index.js
(上面的文件)和node_modules
的目录,并且已经安装了Express。错误从哪里来?
答案 0 :(得分:0)
您为什么要使用它:
var app = require('express')();
var http = require('http').Server(app);`
您可以这样做:
var app = new require('express')();
app.get('/', function(req, res){
res.send('<h1>Hello world</h1>');
});
app.listen(3000, function(){
console.log('listening on *:3000');
});
但是,您的代码可以在我的node.js上完美运行。
var app = new require('express')();
var http = require('http').Server(app);
app.get('/', function(req, res){
res.send('<h1>Hello world</h1>');
});
http.listen(3000, function() {
console.log('listening on *:3000')
});
答案 1 :(得分:0)
错误应该在此行:
var http = require('http').Server(app);
对于您要执行的操作,您只需要express
而没有http
const app = require('express')();
app.get('/', function(req, res){
res.send('<h1>Hello world</h1>');
});
app.listen(3000, () => console.log('listening on 3000'));
如果您还想使用http
,请尝试使用以下语法:
const app = require('express')();
const server = require('http').createServer(app);
server.listen(3000);
答案 2 :(得分:0)
因为我在Ubuntu 14.04上使用了nodejs
模块来安装Node.js,所以我的版本已经过时。我使用nvm
安装了最新版本的Node.js来解决错误。