我正在深入研究 NodeJS 和 Express(这对我来说太复杂了)来构建一个实时 Web 应用程序。目前,我正在尝试了解如何在服务器端使用现有的 javascript 库。问题是该库似乎被设计为在客户端运行,因此说明仅向您展示如何在客户端使用它。我正在谈论的图书馆可以在这里找到......
https://github.com/replit/jsrepl
问题:
- 由于 NodeJS Web 应用程序是基于 javascript 构建的,所以可以公平地说我可以在服务器端运行任何非 gui javascript 库吗?
- 任何人都可以提供一些指导,告诉我如何将该 jsrepl 库添加到我的 Express 3.0 应用程序中,让我能够以与在浏览器客户端中使用它相同的方式使用它吗?我是否必须修改 jsrepl 代码并添加“exports.”我想使用的方法?
这意味着,在服务器端,我可以执行以下代码......
var jsrepl = new JSREPL({
input: inputCallback,
output: outputCallback,
result: resultCallback,
error: errorCallback,
progress: progressCallback,
timeout: {
time: 30000,
callback: timeoutCallback
}
});
预先感谢您的智慧!我正在尽力理解这一切。
所以这是可能的,但是你需要一些认真的黑客才能让它工作。由于这不是一个节点模块并且是从浏览器编写的,正如其他人所指出的,因此您需要节点内的 DOM 来执行它。幸运的是,我们还有精彩的jsdom项目使我们能够做到这一点。那么让我们来设置一下吧。
-
cd
进入您的节点项目(如果还没有,则创建一个)
- 克隆 jsrepl 存储库
git clone git://github.com/replit/jsrepl.git
- cd into
jsrepl
并初始化子模块git submodule update --init --recursive
- 仍在文件夹中,运行
npm install coffee-script
and npm install uglify-js
,仓库中任何地方都没有提到的依赖项(呃)。
- 确保java已安装并运行
cake bake
。经过漫长的编译 java 文件等过程后,命令将完成,jsrepl 将被构建并准备好运行。
- run
npm install jsdom
,然后我们可以开始编写示例文件
这是一个最小的例子:
var jsdom = require('jsdom'),
fs = require('fs'),
jsrepl = fs.readFileSync('./jsrepl/repl.js', 'utf8');
jsdom.env({
html: "<script src='jsrepl.js' id='jsrepl-script'></script> ",
src: [jsrepl],
done: function(err, window){
if (err) return console.error(err);
run_jsrepl.call(window);
}
});
function run_jsrepl(){
console.log(this.JSREPL)
}
这是获得所需的最少代码量JSREPL
到它工作的地方。我们在这里所做的就是需要 jsdom 并实例化它,直接从文件中读取 jsrepl 源代码。如果您运行此文件node filename
它会注销你的JSREPL
对象,可以像在浏览器中一样使用它:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)