javascript - 在 Node.js 中运行浏览器 JS

标签 javascript angularjs node.js cross-platform

我在 AngularJs 中编写了一些基本的 javascript 代码。我希望能够在 Node.js 中运行此代码,但根据情况保留在浏览器中运行它的可能性。

我知道可以使用 browserify 或 lobrow 在浏览器中运行 Node.js 代码,但我没有找到在 Node.js 中运行浏览器代码的解决方案

提前感谢您的回答

丹尼尔

最佳答案

首先是一个警告。由于 Node 没有 DOM,因此模块中没有 DOM 操作。另外,如果您需要require模块中的任何内容,您确实应该查看Browserify等人。

你的模块看起来像这样

(function(){
    var sayHello = function(name) {
       return "Hello " + name;
    };

    // here's the interesting part
    if (typeof module !== 'undefined' && module.exports) {  // we're in NodeJS
        module.exports = sayHello;
    } else {                                                // we're in a browser
        window.sayHello = sayHello;
    }

})();

在 Node 中

var sayHello = require('./myModule');
console.log(sayHello("Node"));        // => "Hello Node"

在您的浏览器中

<script src="myModule.js"></script>
<script>
  console.log(sayHello("Browser"));   // => "Hello Browser"
</script>

关于javascript - 在 Node.js 中运行浏览器 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36057823/

相关文章:

node.js - Mongoose 嵌套文档更新失败?

node.js - Express - 处理 json 响应

javascript - 在 JavaScript 中进行 REST 调用而不使用 JSON?

javascript - 圆形按钮内的换行符不起作用

unit-testing - Jasmine 单元测试 : $compile produces comment out of ng-repeat

javascript - 在 Angular js 中使用电池管理器

spring-mvc - 使用 AngularJS 配置 Spring MVC

javascript - 解码(javascript)源 map

javascript - 使用正则表达式提取 Javascript 中字符串的前两个单词

node.js - 间接关联的 Sequelize