2016-10-01 160 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