我是node.js的新手,并想知道为什么这不按计划运行。我用了,
res.end("Hello world")
过去展示" Hello World"在页面上。
现在,使用下面的代码,好像是在同一地址听,但我在那里导航,它没有进入页面!它就像express没有提供回复一样。我很困惑。
const http = require('http');
var express = require('express');
var app = express();
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
//res.end('Hello World\n');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
app.get('/', function(request, response) {
response.sendFile('index.html');
});
<html>
<header>
<title>
This is title
</title>
</header>
<body>
Hello world
</body>
</html>
Atom Runner: web.js
Server running at http://127.0.0.1:3000/
答案 0 :(得分:4)
你实际上并没有使用快递。您正在为其附加路由,但您正在创建一个单独的服务器对象并且 侦听。你应该有更多这样的东西:
const http = require('http');
var express = require('express');
var app = express();
const hostname = '127.0.0.1';
const port = 3000;
app.get('/', function(request, response){
response.sendFile('index.html');
});
// Have the actual express app listen, not server
app.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
Express'的目的是包装在node.js中创建服务器所涉及的样板。看一下Express Hello world example。该示例甚至不require
http
模块:
const express = require('express')
const app = express()
app.get('/', function (req, res) {
res.send('Hello World!')
})
app.listen(3000, function () {
console.log('Example app listening on port 3000!')
})