2 ybdt1201 ybdt1201 于 2016.09.08 15:16 提问

求助大神,关于node起服务器的问题

这是server.js :

var express = require('express');
var app = express();

app.use(express.static('public'));

app.get('/index.htm', function (req, res) {
   res.sendFile( __dirname + "/" + "index.htm" );
})

app.get('/process_get', function (req, res) {

   // 输出 JSON 格式
   response = {
       first_name:req.query.first_name,
       last_name:req.query.last_name
   };
   console.log(response);
   res.end(JSON.stringify(response));
})

var server = app.listen(8081, function () {

  var host = server.address().address
  var port = server.address().port

  console.log("应用实例,访问地址为 http://%s:%s", host, port)

})

这是index.html:

<html>
<body>
<form action="http://127.0.0.1:8081/process_get" method="GET">
First Name: <input type="text" name="first_name">  <br>

Last Name: <input type="text" name="last_name">
<input type="submit" value="Submit">
</form>
</body>
</html>

我的项目目录是:
图片说明

当访问http://0.0.0.0:8081,时,报错:
图片说明

请问是什么原因,我是学习这个网址
http://www.runoob.com/nodejs/nodejs-express-framework.html
时,遇到的这个问题

2个回答

ybdt1201
ybdt1201   2016.09.08 15:48
已采纳

唉,这个学习网址,也有些马虎,上面server.js的这串代码写错了:
原代码:

app.get('/index.htm', function (req, res) {
   res.sendFile( __dirname + "/" + "index.htm" );
})

他的index.html后面少了一个l,
改成下面就好了

app.get('/index.html', function (req, res) {
   res.sendFile( __dirname + "/" + "index.html" );
})
ybdt1201
ybdt1201   2016.09.08 15:50

另外,因为没有使用app.get返回如下空地址:

app.get('/', function (req, res) {
   console.log("主页 GET 请求");
   res.send('Hello GET');
})

是无法http://127.0.0.1:8081/访问的,
但因为定义了

app.get('/index.html', function (req, res) {
   res.sendFile( __dirname + "/" + "index.html" );
})

可是访问http://127.0.0.1:8081/index.html

Csdn user default icon
上传中...
上传图片
插入图片