私はエクスプレスをグローバルにインストールし、npmは私のエクスプレスアプリをインストールしましたが、インテリジェンスもアプリケーションも動作していません(Mac OS Yosemiteでビジュアルスタジオコードを使用しています)。ここなぜ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');
に達していないということです、別名、私はクライアントに送信することはできません。
EDIT 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');
はまだ動作しません、どちらもそれがエラーを提供しません。
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.:
私はそれが役に立っているか分かりませんが、私はいつも 'var app = express.createServer()'の代わりに 'var app = express()'を使います。 –
@JoachimIsakssonはこれでサーバーを作成しますか? – abedzantout
いつもアプリケーションを作成していますが、そうしているように、あなたが行っているように 'get'を呼び出すことができるオブジェクトを作成します。行を置き換えるだけで、サンプルコードが実行されます。 –