在我server.js
我有以下功能:
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.json());
我也必须使用this库,但我无法弄清楚如何使用它?
文档说我可以npm install node-uuid
和var 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
}
})();
我该如何使用这个库?
答案 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)
如果使用webpack或browserify等捆绑器,您仍然可以在前端使用节点模块。在这种情况下,你可以这样做:
var uuid = require('uuid');
就像你可以在后端一样。确保链接您选择的捆绑包捆绑的文件,这应该可以。
请注意,在脚本标记中加载(更多http请求)与使用捆绑包(更大的文件大小)之间存在(轻微)性能差异。