不是一回事 nodejs虽然用的V8 但是作为web服务器 为了跟操作系统对接 有自己的一套 http fs crypto等模块是浏览器没有的
nodejs的模块系统require是同步加载的 因为nodejs是在本地读取文件的
浏览器上没有默认没有require 浏览器上可用的requirejs或者systemjs之类的模块系统是异步模块
你要做前后端通用的require 需要统一用异步加载 下面给你个大致思路
function asyncRequire (moduleName){
return new Promise( (resolve, reject)=>{
if(node environment){
resolve(require(moduleName));
}
else{
//use xmlhttprequest to load module code from server and generate module with eval(...) virtual machine
//you need to define var module and var exports and return exports in the eval function
resolve(your module);
}
}
}
使用的时候用await/async就可以让你的模块在前后端都可用
let mymodule = await asyncRequire('mymodule');
blabla...
【 在 ttaw 的大作中提到: 】
: 现在我有一个普通的html网站,里面用到了js代码,在chrome和ie里都没问题。如果
: 我现在直接把js代码改成nodejs的,然后放到ie和chrome里跑能行吗?网上说nodejs就是
: 一个基于 Chrome V8 引擎的 JavaScript 运行环境,这样的话chrome应该能识别nodejs
: ...................
--
修改:facilitator FROM 110.23.10.*
FROM 110.23.10.*