如何解决如何仅在Node.js中编写与app.get'/'相同的功能
我正在使用javascript
和node.js
构建应用。
当我要打开主页时,将使用express
进行此操作:
app.get('/',function(req,res){
res.sendFile(__dirname + '/index.html');
});
以这种方式,当我打开主页时,它将返回我index.html
但是我想知道如何仅使用Nodejs
而不使用express
做同样的事情。
我想我需要先创建服务器,然后在请求为index.html
时以某种方式返回/
页面,尽管我不确定这是否正确。
const server = http.createServer((req,res) => {
res.setHeader("Access-Control-Allow-Origin","*");
});
server.on('request',(request,response)=> {
if (requsest.url == '/') {
response.end('index.html')
}
});
上面的代码是我的思考方式,可能不是正确的方式,因此,如果有人可以给我想法或解决方案,请问我该如何在Nodejs
中进行操作。
预先感谢:)
解决方法
它仅呈现静态文件index.html
const http = require('http');
const fs = require('fs');
fs.readFile('./index.html',function(err,html) {
if (err) {
throw err;
}
http.createServer(function(request,response) {
response.writeHeader(200,{
"Content-Type": "text/html"
});
response.write(html);
response.end();
}).listen(3000);
});
假设您的文件夹结构
project root
├── server.js
├── package.json
└── index.html
在Node.js
中进行基本路由而无需使用框架express
。您需要使用server.js
大小写块来设置switch
文件的各种路径。简单示例:
const http = require('http');
const fs = require('fs');
const port = 3000;
const server = http.createServer((req,res) => {
let htmlFile = '';
switch (req.url) {
case '/':
htmlFile = 'index.html';
break;
case '/about':
htmlFile = 'about.html';
break;
default:
break;
}
if (htmlFile)
render(res,htmlFile);
});
function render(res,htmlFile) {
fs.stat(`./${htmlFile}`,(err,stats) => {
res.statusCode = 200;
res.setHeader('Content-Type','text/html');
if (stats) {
fs.createReadStream(htmlFile).pipe(res);
} else {
res.statusCode = 404;
res.end('Page not found!');
}
});
}
-
index.html
,访问根路径/
。 -
about.html
访问/about
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。