Node.js server.get()TypeError:undefined不是函数

时间:2015-07-07 16:06:15

标签: javascript node.js express socket.io

var express = require('express'),
    http = require('http'),
    app = express(),
    server = http.createServer(app),
    io = require('socket.io').listen(server), //pass a http.Server instance
    fs = require('fs');

server.listen(8008);

// routing
server.get('/', function (req, res) {
  res.sendfile(__dirname + '/chat.html');
});

我有这个代码创建一个服务器。当我运行它时,我收到以下错误:TypeError:undefined不是函数

server.get('/', function (req, res) {
       ^
TypeError: undefined is not a function
    at Object.<anonymous> (C:\Users\rexhi\Desktop\private_mess\app.js:11:8)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Function.Module.runMain (module.js:501:10)
    at startup (node.js:129:16)
    at node.js:814:3

这里有什么问题?我是Node的新手。

3 个答案:

答案 0 :(得分:2)

.get(req,res)函数属于express的实例。因此,您应该这样做:

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

答案 1 :(得分:2)

在我看来,您尝试使用快递处理路由,如果是这种情况,那么您要使用app.get()而不是server.get()。所以在你的情况下像

app.get('/', function (req, res) {
  res.sendfile(__dirname + '/chat.html');
});

请查看快速路由参考以获取更多信息 - http://expressjs.com/guide/routing.html

答案 2 :(得分:1)

使用app.get()代替server.get()

app.get('/', function (req, res) {
  res.sendfile(__dirname + '/chat.html');
});