在Node.js中运行浏览器JS

时间:2016-03-17 10:29:15

标签: javascript angularjs node.js cross-platform

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

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

提前感谢您的回答

丹尼尔

1 个答案:

答案 0 :(得分:0)

首先是一个警告。由于节点没有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;
    }

})();

在节点

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

并在浏览器中

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