node+express可以直接使用html吗?
发布于 10 年前 作者 joeylin 72672 次浏览 最后一次编辑是 6 年前

我用了node+express ,里面是用jade ,我写好的前端html代码难道要转成jade,重新在写? 有什么办法可以直接用 html文件啊~

19 回复

res.sendfile(‘test.html’);

html文档放在哪里呢? sendfile里面可以指定路径吗?

推荐 juicer 模板 juicer.name 也可以见我的topic

不想用jade的话,用ejs可以直接套用你的html代码

如果是单纯静态html,可以使用express.static()中间件设定静态文件目录,然后将html文件放在入,如:express默认静态文件目录为:

  app.use(express.static(path.join(__dirname, 'public')));

把index.html文件放入public文件夹中,接着就可以使用http://xxxxxx/index.html访问。 通常你还是需要使用模版的除了jade,ejs和paulguo的juicer都更为简单。

楼上正解

node 的模板库又不是只有 jade, 作为曾经的 py 党我怎么不推荐 jinjs 呢.

哈哈,恩纯html,页面加载时使用ajax去load数据就行了!

我喜欢用 swig 模板引擎。

谢谢,大家哈,后来我用了一个html2jade.com上的转换器,把html转成jade了。

这种情况,还是用ejs好,考虑到你可能需要向html中传递一个或多个变量时。只是不知道ejs render的性能如何?

按照3楼所说的那样,如果我访问的是 类似这样的地址 www.test.com, 怎么让服务器返回www.test.com/index.html 呢?

比如 app.get(’/’, function(req,res) { // 怎么让服务器在访问的/时候返回index.html呢? // 是像下面这样吗 app.use(express.static(‘public’)); });

放在同css javascript的静态目录

我猜测你的意思应该是想,通过搭建本地的服务器,测试自己的静态页(localhost:xxxx/index.html),像是以前用MAMP,LAMP等等,他们都有一个www文件夹,我们把自己写的静态页放到里面就好了,然后就可以直接localhost:xxxx/index.html访问了,但是Node怎么弄那?前提,安装好了Node以及express,然后用express命令生成express架构,目录结构下面有一个public页面,把你的静态页面放到这个文件夹下,通过npm start,开启服务就可以在浏览器中访问了。注意:app.use(express.static(path.join(__dirname, ‘public’)));这行代码很关键

再补充一下,这个一般用在什么时候?比如:你正在用MAC,但是你要测试IE兼容性是吧,在MAC上装一个虚拟机VirtualBox,在OS系统上以Node作为服务器,开启它,然后在IE浏览器里,直接就可以用http://xxx.xxx.xxx.xxx:3000/index.html

@czing 提示no default engine怎么解决?

@zeroone001 如果不是这个场景 我前端使用angular来控制路由,希望angular的route里能用templateUrl来加载模板,这样就需要html,而在浏览器的地址栏里只会暴露当前的state或者说path,而不是具体的文件 这样,express怎么解决view engine的问题?

回到顶部