跳到主要内容
CNode

客户端加载node_modules里面的模块

问答
Gguosheng1987发布于 11 年前最后回复 11 年前
459460

用express4.0建好项目之后 我npm安装了moment.js库 现在希望在客户端加载moment.js 于是我这样引用

得到404错误 也就是说 http://127.0.0.1:3000/moment/moment.js 访问始终抛出了一个404错误

那么现在我不太理解的是moment.js 是否需要单独的移送到public 目录下面然后以静态的形式访问 否则的话难道需要自己写路由代码像

app.use('/', routes); app.use('/users', users);

这样把url路由到对应的文件,但是客户端加载 socket.io 例如这样

成功了 现在我就很不理解这个路由加载的过程 到底express 自己创建的web服务器是怎么样查找对应文件的?

查看回复

回复 (4)

G
guosheng1987#411 年前
引用 okoala要有一个概念,express是可以设置多个静态目录的。可以理解为socket.io为自己本身设置了静态目录,而moment没有,所以使用的是默认的public目录。但是public下并没有对应...

@okoala 应该是你说的这个问题,这样解释起来比较合理,解决方案应该是用1楼的 我现在没有把moment载入到客户端了,在stackoverflow 上面搜索到一种比较好的解决方案

var moment = require('moment'); res.render('index', { title: 'Express', msgData: msg , moment: moment});

视图中就可以这样调用

<%= moment(msgData[i].created_at*1000).fromNow(); %>

O
okoala#311 年前

要有一个概念,express是可以设置多个静态目录的。可以理解为socket.io为自己本身设置了静态目录,而moment没有,所以使用的是默认的public目录。但是public下并没有对应的moment.js文件,所有就报404错误了。

N
nekron#211 年前

我倒是很好奇,为什么加载socket.io能成功。。。

I
i5ting#111 年前

用bower安装到public下面去

参与回复

登录后即可参与回复。登录