Node.js 在节点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

我是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.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版本您在项目中做过这些吗?