我安裝了express全球和npm安裝我的快車應用程序,但intellisence或應用程序都沒有工作(我在mac os優勝美地使用visual studio代碼)。爲什麼createServer()被認爲不是一個函數?
這裏是一個示例代碼:
/// <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()與intellisence一起做的工作沒有任何錯誤。
編輯: 在我的其他應用程序中,我用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');
仍然不能正常工作,它也沒有提供錯誤。
不確定是否有幫助,但我總是使用'var app = express()'而不是'var app = express.createServer()'。 –
@JoachimIsaksson是否創建了一個服務器? – abedzantout
總是把它當作創建應用程序的工具,但是,它創建了一個對象,您可以像調用「get」一樣調用它。只需更換該行就可以運行示例代碼。 –