Node.js 在节点js中使用express模块时出错
我是node.js的新手。我正在使用以下代码。我已安装express模块,并已安装相关文件Node.js 在节点js中使用express模块时出错,node.js,express,npm,Node.js,Express,Npm,我是node.js的新手。我正在使用以下代码。我已安装express模块,并已安装相关文件 var express = require('express') var app = express.createServer() app.listen(8000) var tweets = [] app.get('/', function(req, res) { res.send('Welcome to Node Twitter') }) app.post('/send', express.b
var express = require('express')
var app = express.createServer()
app.listen(8000)
var tweets = []
app.get('/', function(req, res) {
res.send('Welcome to Node Twitter')
})
app.post('/send', express.bodyParser(), function(req, res) {
if (req.body && req.body.tweet) {
tweets.push(req.body.tweet)
res.send({status:"ok", message:"Tweet received"})
} else {
//no tweet?
res.send({status:"nok", message:"No tweet received"})
}
})
app.get('/tweets', function(req,res) {
res.send(tweets)
})
我得到以下错误
var app = function(req, res, next) {
app.handle(req, res, next);
};
mixin(app, proto);
mixin(app, EventEmitter.prototype);
app.request = { __proto__: req, app: app };
app.response = { __proto__: res, app: app };
app.init();
return app;
has no method 'createServer'
at Object.<anonymous> (D:\ProgramFiles\Nodejs\node_modules\twitter.js:3:19)
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:906:3
module.js:340
throw err;
^
Error: Cannot find module 'express'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (D:\NodeApp\twitter.js:1:77)
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)
var-app=功能(请求、恢复、下一步){
应用句柄(请求、恢复、下一步);
};
mixin(app,proto);
mixin(app,EventEmitter.prototype);
app.request={{uuuuuu协议:req,app:app};
app.response={{uuuuuu-proto}:res,app:app};
app.init();
返回应用程序;
没有方法“createServer”
反对。(D:\ProgramFiles\Nodejs\node\u modules\twitter.js:3:19)
在模块处编译(Module.js:456:26)
在Object.Module.\u extensions..js(Module.js:474:10)
在Module.load(Module.js:356:32)
在Function.Module.\u加载(Module.js:312:12)
位于Function.Module.runMain(Module.js:497:10)
启动时(node.js:119:16)
在node.js:906:3
当我将文件放在modules文件夹之外时会发生这种情况。当我把它放在其他地方时,它也找不到模块,并返回以下错误
var app = function(req, res, next) {
app.handle(req, res, next);
};
mixin(app, proto);
mixin(app, EventEmitter.prototype);
app.request = { __proto__: req, app: app };
app.response = { __proto__: res, app: app };
app.init();
return app;
has no method 'createServer'
at Object.<anonymous> (D:\ProgramFiles\Nodejs\node_modules\twitter.js:3:19)
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:906:3
module.js:340
throw err;
^
Error: Cannot find module 'express'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (D:\NodeApp\twitter.js:1:77)
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)
module.js:340
犯错误;
^
错误:找不到模块“express”
在Function.Module.\u解析文件名(Module.js:338:15)
在Function.Module.\u加载(Module.js:280:25)
at Module.require(Module.js:364:17)
根据需要(模块js:380:17)
反对。(D:\NodeApp\twitter.js:1:77)
在模块处编译(Module.js:456:26)
在Object.Module.\u extensions..js(Module.js:474:10)
在Module.load(Module.js:356:32)
在Function.Module.\u加载(Module.js:312:12)
位于Function.Module.runMain(Module.js:497:10)
如何解决此问题?假设在评论中建议使用@JoakimM新版本的express,您会希望:
var app=express()
声明以使用新语法npm安装body parser--save
以获取Express 4.0不再附带的新body parser中间件(请参阅:docs)app。使用以便express了解新中间件
app.post(“/send”
route)中删除express.bodyparser
参数应用程序。请听到底。也许这是迷信……但我就是这么说的
var express = require('express')
var bodyParser = require('body-parser')
var app = express()
var tweets = []
app.use(bodyParser())
app.get('/', function(req, res) {
res.send('Welcome to Node Twitter')
})
app.post('/send', function(req, res) {
if (req.body && req.body.tweet) {
tweets.push(req.body.tweet)
res.send({status:"ok", message:"Tweet received"})
} else {
//no tweet?
res.send({status:"nok", message:"No tweet received"})
}
})
app.get('/tweets', function(req,res) {
res.send(tweets)
})
app.listen(8000)
假设在评论中建议使用@JoakimM新版本的express,则您希望:
var app=express()
声明以使用新语法npm安装body parser--save
以获取Express 4.0不再附带的新body parser中间件(请参阅:docs)app。使用以便express了解新中间件
app.post(“/send”
route)中删除express.bodyparser
参数应用程序。请听到底。也许这是迷信……但我就是这么说的
var express = require('express')
var bodyParser = require('body-parser')
var app = express()
var tweets = []
app.use(bodyParser())
app.get('/', function(req, res) {
res.send('Welcome to Node Twitter')
})
app.post('/send', function(req, res) {
if (req.body && req.body.tweet) {
tweets.push(req.body.tweet)
res.send({status:"ok", message:"Tweet received"})
} else {
//no tweet?
res.send({status:"nok", message:"No tweet received"})
}
})
app.get('/tweets', function(req,res) {
res.send(tweets)
})
app.listen(8000)
假设在评论中建议使用@JoakimM新版本的express,则您希望:
var app=express()
声明以使用新语法npm安装body parser--save
以获取Express 4.0不再附带的新body parser中间件(请参阅:docs)app。使用以便express了解新中间件
app.post(“/send”
route)中删除express.bodyparser
参数应用程序。请听到底。也许这是迷信……但我就是这么说的
var express = require('express')
var bodyParser = require('body-parser')
var app = express()
var tweets = []
app.use(bodyParser())
app.get('/', function(req, res) {
res.send('Welcome to Node Twitter')
})
app.post('/send', function(req, res) {
if (req.body && req.body.tweet) {
tweets.push(req.body.tweet)
res.send({status:"ok", message:"Tweet received"})
} else {
//no tweet?
res.send({status:"nok", message:"No tweet received"})
}
})
app.get('/tweets', function(req,res) {
res.send(tweets)
})
app.listen(8000)
假设在评论中建议使用@JoakimM新版本的express,则您希望:
var app=express()
声明以使用新语法npm安装body parser--save
以获取Express 4.0不再附带的新body parser中间件(请参阅:docs)app。使用以便express了解新中间件
app.post(“/send”
route)中删除express.bodyparser
参数应用程序。请听到底。也许这是迷信……但我就是这么说的
var express = require('express')
var bodyParser = require('body-parser')
var app = express()
var tweets = []
app.use(bodyParser())
app.get('/', function(req, res) {
res.send('Welcome to Node Twitter')
})
app.post('/send', function(req, res) {
if (req.body && req.body.tweet) {
tweets.push(req.body.tweet)
res.send({status:"ok", message:"Tweet received"})
} else {
//no tweet?
res.send({status:"nok", message:"No tweet received"})
}
})
app.get('/tweets', function(req,res) {
res.send(tweets)
})
app.listen(8000)
您是否安装了npm install express?是的。我使用npm install expressAAAH这一行进行安装。您正在使用较新版本的express,它可能只需要var app=express();检查您的express版本:)@goutam您在项目中执行过此操作吗?您是否使用npm install express安装过?是。我使用npm install expressAAAH这一行进行安装。您正在使用较新版本的express,它可能只需要var app=express();检查您的express版本:)@goutam您在项目中执行过此操作吗?您是否使用npm install express安装过?是。我使用npm install expressAAAH这一行进行安装。您正在使用较新版本的express,它可能只需要var app=express();检查您的express版本:)@goutam您在项目中执行过此操作吗?您是否使用npm install express安装过?是。我使用npm install expressAAAH这一行进行安装。您正在使用较新版本的express,它可能只需要var app=express();检查您的express:)@goutam版本您在项目中做过这些吗?