2016-10-01 132 views
0

我正在學習MEAN堆棧,所以先從Node.js和Express開始。我在Windows 10上運行Nginx。我安裝了最新的Node。 NPM版本爲3.10.3,節點版本爲6.7.0,Express版本爲4.14.0。我做了npm install express --save,npm install mongoose --save,npm install body-parser --save,並創建了server.js文件。我做了我的消息來源node server,我得到了以下錯誤:Hello World Node.js/Express應用程序錯誤

 
C:\nginx\html>node server 
C:\nginx\html\server.js:7 
app.get('/', function(req, res){ 
    ^

TypeError: app.get is not a function 
    at Object. (C:\nginx\html\server.js:7:5) 
    at Module._compile (module.js:556:32) 
    at Object.Module._extensions..js (module.js:565:10) 
    at Module.load (module.js:473:32) 
    at tryModuleLoad (module.js:432:12) 
    at Function.Module._load (module.js:424:3) 
    at Module.runMain (module.js:590:10) 
    at run (bootstrap_node.js:394:7) 
    at startup (bootstrap_node.js:149:9) 
    at bootstrap_node.js:509:3 

C:\nginx\html> 

而在我server.js文件中的代碼是:

var express = require('express'); 
var express = require('mongoose'); 
var express = require('body-parser'); 

var app = express(); 

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

app.listen(80); 

我不知道一個Hello World應用程序如何出錯。我看到很多內容和代碼都是一樣的,但爲他們工作。即使Express的官方hello world app也有相同的代碼。

回答

2

試試這個

var express = require('express'); 
var mongoose= require('mongoose'); 
var bodyparser = require('body-parser'); 

var app = express(); 

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

app.listen(80); 
+0

嘗試過,但結束了另一個錯誤http://pastebin.com/NJ8FFfJ5 – JackSlayer94

+0

EADDRINUSE意味着在這種情況下,端口,80已被使用。所以你可以改變端口號,選擇一個更高的數字,如3000或8080. –

+0

是的,但80是我的nginx正在運行的。不應該一樣嗎?我很抱歉,我來自PHP背景,所以不太瞭解 – JackSlayer94

0

您需要安裝expressexpression如下

npm install express --save 

,然後你喜歡玩

var express = require('express'); 
var mongoose = require('mongoose'); 
var bodyParser = require('body-parser'); 

var app = express(); 

// parse application/x-www-form-urlencoded 
app.use(bodyParser.urlencoded({ extended: false })) 
// parse application/json 
app.use(bodyParser.json()) 

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

app.post('/', function(req, res){ 
    res.json({data: req.body}); 
}); 

app.listen(3000); 

,然後嘗試聽另一個端口是1024以上的可能是30008080或任何否則,你必須以管理員身份運行cmd

+0

我很肯定他們的意思是Express,因爲'expression'模塊沒有4.14.0版本。 – mscdex

+0

我想// @ JackSlayer94會在表達和表情之間產生混淆,否則我們必須在espress中報告錯誤): –

+0

@mscdex這是一個錯字,謝謝你指出! :) – JackSlayer94