5

私はエクスプレスをグローバルにインストールし、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()は廃止されましたことがわかりました。私はアプリケーションのどこかでバージョンを変更する必要があることを読んだ。

Here is my application folder

注:私は純粋に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.:

+0

私はそれが役に立っているか分かりませんが、私はいつも 'var app = express.createServer()'の代わりに 'var app = express()'を使います。 –

+0

@JoachimIsakssonはこれでサーバーを作成しますか? – abedzantout

+0

いつもアプリケーションを作成していますが、そうしているように、あなたが行っているように 'get'を呼び出すことができるオブジェクトを作成します。行を置き換えるだけで、サンプルコードが実行されます。 –

答えて

5

createServerはそれがあるべきhttpの関数であり、 expressをグローバルにインストールすることは悪い考えです

+0

大丈夫ですので、エラーはなくなりましたが、クライアントには何も送信できません。 res.send( 'hi');到達していない – abedzantout

+0

サーバはどのポートをリッスンしていますか?どのポートでクライアントを指していますか? – krl

+0

あなたの例でポートを修正しましたが、サーバーはおそらくアップしていますが、まだ送信できません – abedzantout

関連する問題