使用 Node.JS、Express 和 EJS 实现 browserify 的示例
Posted
技术标签:
【中文标题】使用 Node.JS、Express 和 EJS 实现 browserify 的示例【英文标题】:Example of browserify implementation with Node.JS, Express, and EJS 【发布时间】:2017-02-06 19:20:07 【问题描述】:我无法让 browserify 在我的网络应用上运行。
我在终端浏览器并创建 bundle.js 文件。我把它放在我的 public/javascripts 文件夹中,并将它包含在我的 EJS 文件中,但仍然无法让代码工作:
终端:
browserify public/javascripts/chat.js > bundle.js
chat.js 文件:
$(function()
var parse = require("parse").Parse;
let query = new Parse.Query('Chat');
let subscription = query.subscribe();
subscription.on('open', () =>
//console.log('subscription opened');
alert("sub opened");
);
subscription.on('create', (object) =>
//console.log('object created: ' + object.get('message'));
alert('object created: ' + object.get('message'))
);
);
ejs 文件:
<script src="javascripts/bundle.js "></script>
【问题讨论】:
【参考方案1】:src="javascripts/bundle.js"
是相对路径。当您的应用程序到达此路径时,它将在您的 server.js
(或运行节点进程的任何文件)所在的同一文件夹中查找名为 javascript
的文件夹,但无法找到它;因为我很确定您不会在公用文件夹中提供后端应用程序。
我想你的意思是src="/javascripts/bundle.js"
。现在它是一个绝对路径,如果您从public
文件夹提供静态文件:
app.use(express.static(path.join(__dirname, 'public')));
无论您server.js
位于或运行的位置,此文件都将从http://yourhost/javascripts/bundle.js
提供。
【讨论】:
我在 src 文件中得到 200,但我仍然无法从 bundle.js 文件访问 Parse 模块【参考方案2】:更新:没有意识到这一点,但我必须在 bundle.js 脚本下包含 chat.js 脚本并让它工作。谢谢@Dnitro
改为:
<script src="javascripts/bundle.js "></script>
<script src="javascripts/chat.js "></script>
【讨论】:
以上是关于使用 Node.JS、Express 和 EJS 实现 browserify 的示例的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 mongodb、node.js、express 和 EJS 创建动态站点地图?
Node JS+Express:如何在 HTML(EJS) 中定义和使用 MySQL 数据?
使用 Node.Js、Express 和 EJS 在索引页面的不同部分显示博客文章