服务器端Javascript是否有类似Java类路径的功能
Is there a Java classpath-like feature for server-side Javascript?
在Java中使用JUnit和Maven时,src/main
和src/test
可以有单独的属性文件。这允许对代码和测试进行不同的配置,让Maven通过使用Java类路径来管理资源。
Node.js运行的Javascript代码中有类似的方法吗?我使用Mocha进行单元测试,使用Grunt进行任务管理。
script.js
:的代码示例
var config = require('./config/dev/app.js');
exports.getFileName = function() {
return config.fileName; // returns 'code.txt'
}
当test.js
单元测试需要时,我需要的是让script.js
使用不同的配置文件,如下所示:
var assert = require('assert');
var s = require('./script.js');
describe('Test', function () {
it('should use different config file', function() {
assert.equal('test.txt', s.getFileName());
});
});
有没有一种方法可以在script.js
中使用不同配置的./config/test/app.js
,而不必更改script.js
的代码?我真正想避免的是调整代码以支持单元测试。相反,我希望实现类似的功能,比如前面提到的Java类路径。
请尝试此代码。
Script.js
var config;
if(process.env.dev===true){
config = require('./config/dev/config.js');
}
if(process.env.prod===true){
config = require('./config/prod/config.js');
}
exports.getFileName = function() {
return config.fileName; // returns 'code.txt'
}
test.js
//set the environment here
process.env.dev = true;
var assert = require('assert');
var s = require('./script.js');
describe('Test', function () {
it('should use different config file', function() {
assert.equal('test.txt', s.getFileName());
});
});
我在网上没有找到任何优雅的解决方案,所以我已经实现并发布了自己的解决方案。点击此处查看:https://npmjs.org/package/app-config
使用app-config
插件,只有script.js
需要这样更改:
var config = require('app-config').app;
exports.getFileName = function() {
return config.fileName; // returns 'code.txt'
}
应用程序需要以这种方式运行,例如
NODE_ENV=dev node script.js
NODE_ENV=unitTest mocha test.js
根据NODE_ENV
环境变量,app-config
插件将加载正确的配置文件集。
相关文章:
- 添加文字和评论功能更新Div
- JavaScript打印功能使日历停止工作
- Javascript:使用绝对路径设置img src
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 如何在d3.js中返回路径的y坐标
- 如何防止网页加载后自动启动功能
- 除修剪外的其他功能
- 悬停功能触发器
- 使用angularjs向浏览器发送servlet响应(下载功能)
- 复制图像路径以单击它
- 从模块内部访问Express装载路径
- 删除CKEditor工具栏按钮,但不删除功能
- 异步facebook功能
- JS文件的路径正在消失
- 使用onclick绘制SVG路径
- SVG3d:使用缓和功能控制路径的旋转
- 角度 - 使用具有回退功能的动态路径加载自定义模板
- 服务器端Javascript是否有类似Java类路径的功能
- Raphael中多条路径的悬停功能相同
- 如何使用jquery切换路径点功能