使用没有任何框架的节点 js 的简单导航
simple Navigation using node js without any frameworks
当我在 app.js 中阅读 "login.html" 时,它有两个 href 链接(登录和注册)应该重定向到提供的位置,但是当我点击它们时它没有发生?
这是代码
var http = require('http');
var fs = require('fs');
http.createServer(function (req, res) {
fs.readFile('./login.html' , function(err, data){
if(err){
console.log(err);
}
console.log("sanjay");
res.end(data);
});
}).listen(3000);
console.log('Server running at http://<workspace-url>/');
"login.html"
<html>
<head>
</head>
<body>
<ul>
<li><a href="index.html" >login</a></li>
<li><a href="index.html">signup</a></li>
</ul>
</body>
</html>
nodejs 服务器不会自动提供任何文件。您有提供服务 login.html 的代码,但没有提供任何其他文件的代码。因此,在编写您的服务器时,所有请求都将服务于 login.html,无论请求的是什么 URL。
如果您想坚持使用现有的纯 http 服务器,则必须查看 req
参数以查看请求的路径是什么,然后提供适当的文件。但是,有一些像 Express 这样的简单框架,可以更简单地使用一行代码来提供大量静态 HTML 文件。
请求对象是 documented here,如果您想查看 url 请求的内容然后提供相应的文件,您可以查看 req.url
。
我个人建议您使用 Express framework,其中您可以使用 express.static()
功能通过一行代码为您的静态 HTML 文件提供服务。
您的 app.js 文件仅服务于 login.html
,它不处理 index.html
的请求。
您可以像这样修改app.js:
http.createServer(function (req, res) {
if (req.url === '/index.html') {
fs.createReadStream(__dirname + '/index.html').pipe(res)
} else {
fs.createReadStream(__dirname + '/login.html').pipe(res)
}
}).listen(3000)
当我在 app.js 中阅读 "login.html" 时,它有两个 href 链接(登录和注册)应该重定向到提供的位置,但是当我点击它们时它没有发生? 这是代码
var http = require('http');
var fs = require('fs');
http.createServer(function (req, res) {
fs.readFile('./login.html' , function(err, data){
if(err){
console.log(err);
}
console.log("sanjay");
res.end(data);
});
}).listen(3000);
console.log('Server running at http://<workspace-url>/');
"login.html"
<html>
<head>
</head>
<body>
<ul>
<li><a href="index.html" >login</a></li>
<li><a href="index.html">signup</a></li>
</ul>
</body>
</html>
nodejs 服务器不会自动提供任何文件。您有提供服务 login.html 的代码,但没有提供任何其他文件的代码。因此,在编写您的服务器时,所有请求都将服务于 login.html,无论请求的是什么 URL。
如果您想坚持使用现有的纯 http 服务器,则必须查看 req
参数以查看请求的路径是什么,然后提供适当的文件。但是,有一些像 Express 这样的简单框架,可以更简单地使用一行代码来提供大量静态 HTML 文件。
请求对象是 documented here,如果您想查看 url 请求的内容然后提供相应的文件,您可以查看 req.url
。
我个人建议您使用 Express framework,其中您可以使用 express.static()
功能通过一行代码为您的静态 HTML 文件提供服务。
您的 app.js 文件仅服务于 login.html
,它不处理 index.html
的请求。
您可以像这样修改app.js:
http.createServer(function (req, res) {
if (req.url === '/index.html') {
fs.createReadStream(__dirname + '/index.html').pipe(res)
} else {
fs.createReadStream(__dirname + '/login.html').pipe(res)
}
}).listen(3000)