为什么 createServer() 被认为不是函数?
why is createServer() considered not a function?
我在全球安装了 express 并且 npm 安装了我的 express 应用程序,但是智能或应用程序都没有工作(我在 mac OS [=46= 上使用 visual studio 代码]).
这里有一个示例代码:
/// <reference path="typings/node/node.d.ts" />
/// <reference path="typings/express/express.d.ts" />
var express = require('express');
var app = express.createServer();
app.get('/', function (req, res) {
res.send('hi');
})
app.listen(8000);
这是我遇到的错误:
Abeds-MacBook-Pro:myNode AZ$ node twitter.js
/Users/AZ/Desktop/myNode/twitter.js:5
var app = express.createServer();
^
TypeError: express.createServer is not a function
at Object.<anonymous> (/Users/AZ/Desktop/myNode/twitter.js:5:19)
at Module._compile (module.js:397:26)
at Object.Module._extensions..js (module.js:404:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:429:10)
at startup (node.js:139:18)
at node.js:999:3
我研究了一下,发现 createServer() 已被弃用。我读到我需要在我的应用程序中的某处更改版本。
注意:我完全使用 Node.js 做了另一个应用程序,并且 createServer() 和智能一起工作没有任何错误。
编辑:
在我的其他应用程序中,我改用 require('net')
。
我将代码修改为以下内容:
var express = require('express')
, http = require('http');
var app = express();
var server = http.createServer(app);
console.log('Listening on port 8000')
app.get('/', function (req, res) {
res.send('hi');
})
app.listen(8000)
我现在遇到的问题是 res.send('hi');
还没有达到,也就是说,我无法发送给客户端。
编辑 2:
我尝试了其中一个答案中提供的以下代码:
const express = require('express');
const http = require('http');
const app = express();
const server = http.createServer(app).listen(8080, function(err) {
if (err) {
console.log(err);
} else {
const host = server.address().address;
const port = server.address().port;
console.log(`Server listening on ${host}:${port}`);
}
});
app.get('/', function (req, res) {
res.send('hi');
})
res.send('hi');
仍然不起作用,也没有提供错误。
createServer
是 http
的函数,所以它应该是:
const express = require('express');
const http = require('http');
const app = express();
app.get('/', function (req, res) {
res.send('hi');
});
const server = http.createServer(app).listen(8080, function(err) {
if (err) {
console.log(err);
} else {
const host = server.address().address;
const port = server.address().port;
console.log(`Server listening on ${host}:${port}`);
}
});
P.S。全局安装 express
是个坏主意
我在全球安装了 express 并且 npm 安装了我的 express 应用程序,但是智能或应用程序都没有工作(我在 mac OS [=46= 上使用 visual studio 代码]).
这里有一个示例代码:
/// <reference path="typings/node/node.d.ts" />
/// <reference path="typings/express/express.d.ts" />
var express = require('express');
var app = express.createServer();
app.get('/', function (req, res) {
res.send('hi');
})
app.listen(8000);
这是我遇到的错误:
Abeds-MacBook-Pro:myNode AZ$ node twitter.js
/Users/AZ/Desktop/myNode/twitter.js:5
var app = express.createServer();
^
TypeError: express.createServer is not a function
at Object.<anonymous> (/Users/AZ/Desktop/myNode/twitter.js:5:19)
at Module._compile (module.js:397:26)
at Object.Module._extensions..js (module.js:404:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:429:10)
at startup (node.js:139:18)
at node.js:999:3
我研究了一下,发现 createServer() 已被弃用。我读到我需要在我的应用程序中的某处更改版本。
注意:我完全使用 Node.js 做了另一个应用程序,并且 createServer() 和智能一起工作没有任何错误。
编辑:
在我的其他应用程序中,我改用 require('net')
。
我将代码修改为以下内容:
var express = require('express')
, http = require('http');
var app = express();
var server = http.createServer(app);
console.log('Listening on port 8000')
app.get('/', function (req, res) {
res.send('hi');
})
app.listen(8000)
我现在遇到的问题是 res.send('hi');
还没有达到,也就是说,我无法发送给客户端。
编辑 2:
我尝试了其中一个答案中提供的以下代码:
const express = require('express');
const http = require('http');
const app = express();
const server = http.createServer(app).listen(8080, function(err) {
if (err) {
console.log(err);
} else {
const host = server.address().address;
const port = server.address().port;
console.log(`Server listening on ${host}:${port}`);
}
});
app.get('/', function (req, res) {
res.send('hi');
})
res.send('hi');
仍然不起作用,也没有提供错误。
createServer
是 http
的函数,所以它应该是:
const express = require('express');
const http = require('http');
const app = express();
app.get('/', function (req, res) {
res.send('hi');
});
const server = http.createServer(app).listen(8080, function(err) {
if (err) {
console.log(err);
} else {
const host = server.address().address;
const port = server.address().port;
console.log(`Server listening on ${host}:${port}`);
}
});
P.S。全局安装 express
是个坏主意