nodejs在调用createServer时抛出错误

时间:2014-05-12 14:30:16

标签: node.js

我实际上只是重复了一本书中的代码,但由于某种原因它不会起作用。这是自己的代码。这很简单

var express = require('express')

var app = express.createServer();


app.get('/', function(req, res){
res.send('Welcome')
})

app.listen(8000)

当我安装快递。我得到这个屏幕,我认为一切都很好

C:\>npm install express
npm http GET https://registry.npmjs.org/express
npm http 304 https://registry.npmjs.org/express
npm http GET https://registry.npmjs.org/type-is
npm http GET https://registry.npmjs.org/accepts
npm http GET https://registry.npmjs.org/buffer-crc32
npm http GET https://registry.npmjs.org/cookie
npm http GET https://registry.npmjs.org/parseurl
npm http GET https://registry.npmjs.org/range-parser
npm http GET https://registry.npmjs.org/cookie-signature
npm http GET https://registry.npmjs.org/escape-html
npm http GET https://registry.npmjs.org/serve-static
npm http GET https://registry.npmjs.org/send
npm http GET https://registry.npmjs.org/utils-merge
npm http GET https://registry.npmjs.org/methods
npm http GET https://registry.npmjs.org/qs
npm http GET https://registry.npmjs.org/path-to-regexp
npm http GET https://registry.npmjs.org/merge-descriptors
npm http GET https://registry.npmjs.org/fresh
npm http GET https://registry.npmjs.org/debug
npm http 304 https://registry.npmjs.org/cookie
npm http 304 https://registry.npmjs.org/parseurl
npm http 304 https://registry.npmjs.org/accepts
npm http 304 https://registry.npmjs.org/type-is
npm http 304 https://registry.npmjs.org/cookie-signature
npm http 304 https://registry.npmjs.org/buffer-crc32
npm http 304 https://registry.npmjs.org/range-parser
npm http 304 https://registry.npmjs.org/send
npm http 304 https://registry.npmjs.org/utils-merge
npm http 304 https://registry.npmjs.org/serve-static
npm http 304 https://registry.npmjs.org/escape-html
npm http 304 https://registry.npmjs.org/qs
npm http 304 https://registry.npmjs.org/fresh
npm http 304 https://registry.npmjs.org/methods
npm http 304 https://registry.npmjs.org/debug
npm http 304 https://registry.npmjs.org/path-to-regexp
npm http 304 https://registry.npmjs.org/merge-descriptors
npm http GET https://registry.npmjs.org/mime
npm http GET https://registry.npmjs.org/negotiator
npm http GET https://registry.npmjs.org/mime
npm http 304 https://registry.npmjs.org/mime
npm http 304 https://registry.npmjs.org/negotiator
npm http 304 https://registry.npmjs.org/mime
express@4.2.0 node_modules\express
├── parseurl@1.0.1
├── cookie@0.1.2
├── utils-merge@1.0.0
├── merge-descriptors@0.0.2
├── escape-html@1.0.1
├── cookie-signature@1.0.3
├── debug@0.8.1
├── range-parser@1.0.0
├── fresh@0.2.2
├── qs@0.6.6
├── methods@1.0.0
├── buffer-crc32@0.2.1
├── serve-static@1.1.0
├── path-to-regexp@0.1.2
├── send@0.3.0 (debug@0.8.0, mime@1.2.11)
├── type-is@1.1.0 (mime@1.2.11)
└── accepts@1.0.1 (negotiator@0.4.3, mime@1.2.11)

当我尝试运行它时。我收到了错误。似乎createServer正在抛出错误 因为它没有定义或什么

   C:\Users\User\Dropbox\Personal Documents\Staj node\expresstry>node expresstry.js


C:\Users\Sinan\Dropbox\Personal Documents\Staj node\expresstry\expresstry.js:7
var app = express.createServer();
              ^
TypeError: Object function createApplication() {
  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> (C:\Users\Sinan\Dropbox\Personal Documents\Staj node\t
 witter\twitterbuild.js:7: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

谢谢

2 个答案:

答案 0 :(得分:0)

在最新版本中,它只是:

var app = express();

所以你的代码是:

var express = require('express');
var app = express();

app.get('/', function(req, res){
  res.send('Welcome');
});

app.listen(8000);

Source

答案 1 :(得分:0)

您的图书基于express的旧版本。我建议寻找更新的代码示例。但是,如果没有,则可以使用

安装旧版本的快递
npm install express@2.0.0

如果图书指定了express的版本,请使用该版本代替2.0.0 - 我将其放入,因为我知道该版本有createServer

请注意,这可能不稳定(它希望在节点0.4 - 0.5上运行,这比您可能运行的方式更旧。您最好找到更新的代码示例或使用不同的材料。