有没有办法在运行时(服务时间)在服务器上使用require
(或其他相同的东西),而不会阻止整个事情?
我正在尝试添加用户定义的函数,之后他可以使用我正在实现的语言来使用它们。
所以,例如:
toaprse.mylanguage
#bind somefunctions.js
x = somefunctions.func1();
我可以做一个简单的要求('somefunction');但我不想阻止节点,我理解是这样的。
我只想将函数传递给我的框架,它不一定是require
,但它看起来很自然。
答案 0 :(得分:3)
这就是如何实施的要求:
> console.log(require.extensions['.js'].toString())
function (module, filename) {
var content = NativeModule.require('fs').readFileSync(filename, 'utf8');
module._compile(stripBOM(content), filename);
}
您可以在自己的应用中执行相同的操作。我猜这样的事情会起作用:
var fs = require('fs')
require.async = function(filename, callback) {
fs.readFile(filename, 'utf8', function(err, content) {
if (err) return callback(err)
module._compile(content, filename)
// this require call won't block anything because of caching
callback(null, require(filename))
})
}
require.async('./test.js', function(err, module) {
console.log(module)
})
答案 1 :(得分:2)