nodejs如何设置静态目录!不用express.纯nodejs实现!
发布于 8 年前 作者 caihuattkl 7395 次预览 最后一次回复是 8 年前 来自 问答
我的需求是这样的.我有一个目录,里面全是html文件.比如,stc目录(这个目录中有a.html,b.html),当用户访问 xxx.con/stc/a.html 就能访问到这个页面.但是当用户访问c.html的页面时就提示他不存在或者返回404, 如何实现呢?是不是要遍历这个stc目录啊,然后跟req.url去比较,但是感觉效率很低啊!!!? 很疑惑.请知道的朋友不吝赐教!
9 回复
用nginx就行了,跟node没关系
@blackjack node不能实现吗? 我有几千个html文件…╮(╯▽╰)╭
@caihuattkl 直接用http模块写要写好多代码,干嘛要重复造轮子嘛。如果想要个nginx的替代品可以试试redbird 如果只是想要个静态目录的web服务器,可以试试http-server
nginx不就行了嘛。。。
node是可以实现,用自己原生的http模块就可以,只不过没必要,你需要的是一个http服务器,而不是一个服务引擎,有好多http服务器在这方面都做到了极致,高性能、易部署、超稳定,nginx、lighttp、apache等等都可以呀,为什么一定要用node来写。
https://github.com/ChenShenhai/node-server 以前写过一个纯node.js的静态服务器,希望对你有帮助。
@libook 我就是生成一批页面自己用的.没必要用nginx的!
@caihuattkl 简单说吧,反正横竖都要用http服务器,使用现成的http服务器还是自己用node写一个?你用现成的HTTP服务器nginx的话只需要两行配置,用node自己写一个http服务器的话要写几十行,功能还不全,性能比nginx也差很多,你自己选咯。
如果你想跨域访问的话还要加header:
不想重新造轮子,可以用https://github.com/expressjs/serve-static ,其内部做的事情和楼上说的差不多