在节点应用程序中使用第三方库

时间:2016-05-29 03:41:53

标签: javascript angularjs node.js

在我server.js我有以下功能:

var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.json());

我也必须使用this库,但我无法弄清楚如何使用它?

文档说我可以npm install node-uuidvar uuid = require('node-uuid');

我尝试将var uuid = require('node-uuid');添加到server.js,但我无法在uuid等任何控制器js文件中使用var id = uuid.v1();。我得到Error: Can't find variable: uuid

控制器文件如下所示:

(function() {
    angular
        .module("WebApp")
        .controller("TestController", TestController);

    function TestController($location) {
        // need to get a uuid here
    }

})();

我该如何使用这个库?

3 个答案:

答案 0 :(得分:1)

如果您的代码高于客户端代码并且您真的想在客户端使用angular framework实现它,那么您可以尝试使用AngularJS包装器来处理原始node-uuid库,即angular-uuid。

在客户端的js文件夹中创建angular-uuid.js文件 使用此链接复制此文件的内容 https://github.com/munkychop/angular-uuid/blob/master/angular-uuid.js 并使用复制的内容保存此文件。

使用常规脚本标记来包含此lib

<script src="angular-uuid.js"></script>

在模块定义中包含angular-uuid并将其注入控制器

(function() {
    angular
        .module("WebApp",["angular-uuid"])
        .controller("TestController", ["uuid",TestController]);

    function TestController(uuid) {
        // need to get a uuid here
    }

})();

答案 1 :(得分:0)

npm install对你的客户端角度代码没有任何好处,因为它无法访问node_modules。

在您上面链接的页面中,说明会将其包含在您的html中,例如:

<script src="uuid.js"></script>

如果你这样做,那么如果你的控制器代码在上面提到的脚本加载后运行,那你就应该好了。

如果您上面的代码不是客户端代码,那么我不确定您在服务器端使用angular进行了什么操作。

注意:如果您正在使用捆绑类似web-pack的东西,那么您可以使用npm来安装uuid库。如果你这样做,请告诉我们。

答案 2 :(得分:0)

如果使用webpackbrowserify等捆绑器,您仍然可以在前端使用节点模块。在这种情况下,你可以这样做:

var uuid = require('uuid');

就像你可以在后端一样。确保链接您选择的捆绑包捆绑的文件,这应该可以。

请注意,在脚本标记中加载(更多http请求)与使用捆绑包(更大的文件大小)之间存在(轻微)性能差异。