Javascript 在本机节点js(没有express)中,我通常如何进行路由?

Javascript 在本机节点js(没有express)中,我通常如何进行路由?,javascript,node.js,Javascript,Node.js,在本机节点js(无express)中,我通常如何进行路由?我的代码如下。但这只适用于post请求。如何使其适用于带有参数的get请求?如何将代码更改为get请求,并将参数设置为/main const server=http.createServer((req,res)=>{ 让filePath=path.join(uu dirname,'public',req.url==='/'?'login.html':req.url) const ext=path.extname(文件路径) 让conten

在本机节点js(无express)中,我通常如何进行路由?我的代码如下。但这只适用于post请求。如何使其适用于带有参数的get请求?如何将代码更改为get请求,并将参数设置为
/main

const server=http.createServer((req,res)=>{
让filePath=path.join(uu dirname,'public',req.url==='/'?'login.html':req.url)
const ext=path.extname(文件路径)
让contentType='text/html'
交换机(分机){
大小写“.css”:
contentType='text/css'
打破
case'.js':
contentType='text/javascript'
打破
违约:
contentType='text/html'
}
如果(!ext){
filePath+='.html'
}
fs.readFile(文件路径,(错误,内容)=>{
如果(错误){
fs.readFile(path.join(uu dirname,'public','error.html'),(err,data)=>{
如果(错误){
文书标题(500)
res.end('错误')
}否则{
文书标题(200{
“内容类型”:“text.html”
})
res.end(数据)
}
})
}否则{
文书标题(200{
“内容类型”:内容类型
})
dbConnect()
如果(req.url=='/login'&&req.method==='POST'){
loginApp(需求、资源)
}else if(req.url=='/registration'&&req.method==='POST'){
regApp(需求、资源)
}else if(req.url=='/new_post'&&req.method==='post'){
createNewPost(请求、回复)
}else if(req.url=='/main'&&req.method==='POST'){
deletePost(请求、回复)
}else if(req.url=='/main'){
渲染窗口(res)
}否则{
res.end(内容)
}
}
})
})
const PORT=process.env.PORT | 5000
服务器。侦听(端口,()=>{
log(`Server已在${PORT}…`上启动)
})

只需检查
请求url
即可进行路由,如下所示:

consthttp=require(“http”);
const server=http.createServer(函数(req,res){
res.writeHead(200,{“内容类型”:“text/html”});
var url=req.url;
如果(url==“/foo”){
res.write(“foo”);
res.end();
}else if(url==“/bar”){
res.write(“律师”);
res.end();
}否则{
res.write(“家!”);
res.end();
}
});
const PORT=process.env.PORT | 5000;
服务器。侦听(端口,()=>{
log(`Server已在${PORT}…`上启动);
});
显然,这种方法有点“幼稚”,并且不会随着路线的增长而扩展。不过,您始终可以使用一个在普通http服务器上运行的超高速小插件

consthttp=require('http'))
const router=require('find-my-way')()
路由器.on('GET','/',(req,res,params)=>{
res.end(“{”消息“:“hello world”}”)
})
const server=http.createServer((req,res)=>{
路由器查找(req、res)
})
监听(3000,错误=>{
如果(错误)抛出错误
console.log('正在侦听的服务器:http://localhost:3000')
})

我仍然看不出这可能只是对post请求的响应。。尝试相同的post请求并更改获取方法,您应该会看到相同的
响应
有2个问题。1) 如何以“我的方式”将参数传递到服务器?参数通常为空或未定义。2) 在find my way only get请求中?1)参数作为req对象的一部分出现,请查看文档。您甚至可以创建参数化URL 2)您可以在路由器上设置GET、POST、PUT等侦听器