Tag: 平均值堆栈

如何正确安装节点模块到子文件夹?

什么是在子文件夹中创buildnode_modules文件夹的官方方法? 我正在使用Bower作为客户端文件,并乐意在“客户端”文件夹下安装它们。 将NPM用于服务器端的依赖关系并遵循相同的模式会很好。 例如: MyApplication client bower_modules server node_modules .bowerrc package.json server.js 根据NPM文档,可以将节点模块安装到默认位置以外的文件夹中。 不幸的是,使用–prefix选项可以防止package.json的dependencies部分被填充…这导致我相信这不是这样做的正确方法。

使用节点和mongoose将新的mongoDB文档从数组中取出的最好方法是什么?

我正在使用MeanJS,用户input每个需要创build一个新文档的对象列表。 同时,我需要创build另一个单独的文档,指向数组中的每个对象,并将每个对象链接回这个新文档。 所以最终的结果需要是模型“Q”的任意数量的文档,它们与模型“S”的另一个文档相关联。 我试图这样做的原因是让用户创build一个问题的调查。 每个问题都将是自己填写“调查”的对象(作为一个属性,将包含这些问题ID的列表)。 S = {"_id": 0, "Qids": [ObjectId("1"), ObjectId("2"), ObjectId("3"), ObjectId("4")]} Q1 = {"_id": ObjectId("1"), "Sid": ObjectId("0")} Q2 = {"_id": ObjectId("2"), "Sid": ObjectId("0")} Q3 = {"_id": ObjectId("3"), "Sid": ObjectId("0")} Q4 = {"_id": ObjectId("4"), "Sid": ObjectId("0")} 我的问题:我似乎无法做到这一点没有遇到callback的问题。 有人可以给我一些build议吗? 这就是现在的样子: 客户端: $scope.Qlist = [Q1, Q2, Q3, Q4]; $scope.S = {}; $http.post('/S', $scope.S).success(function(data){ var req_obj […]

MEAN Stack app – 发送后无法设置标题

我基本上是试图创build一个使用MEAN注册页面,我想检查数据库(Mongo使用Mongoose),如果用户和电子邮件已经存在,如果其中一个是真的,发送res.json失败。 如果用户名和电子邮件不在数据库中,请继续添加用户。 我收到一个错误“发送后无法设置标题”。 在节点控制台上,我试图找出原因。 一旦User.getUsername()在callback中返回一个用户(如果用户名传递存在于数据库中),不应该返回JSON并在那里结束请求? 为什么它继续到User.adduser()函数并尝试在那里设置标题呢? 任何帮助表示赞赏,谢谢。 router.post('/register', (req, res, next) =>{ let newUser = new User({ // Collect body info name: req.body.name, email: req.body.email, username: req.body.username, password: req.body.password }); // Check if username is available User.getUserByUsername(newUser.username, (err, user) => { if(err) throw err; if(user){ return res.json({success: false, msg: 'User already exists'}); // I want […]

Node Express Mongoose:编写API以通过多个可选参数search数据

我有一个searchinput框,用户应该可以通过员工ID或名字或姓氏进行search。 员工ID也是一个string。 我有称为configuration文件,具有员工信息的mongo模型。 我正在使用节点Express和mongoose。 我想有一个路由器接收id或名字或姓氏作为请求参数如下。 this.router.get('/name/:name', this.getMidSearchResults); private getMidSearchResults(req: Request, res: Response, next: NextFunction) { var nameRegex = {"$regex": new RegExp('^' + req.params.name.toLowerCase(), 'i')}; Profile.find({ mid: nameRegex } || {firstName: nameRegex} || {lastName: nameRegex}, function(err, data) { if (err) throw err; res.send(data); }); }

使用node-gitlab API获取项目提交

在NodeJS应用程序中使用node-gitlab API,我怎样才能得到一个项目的提交列表。 我可以使用以下项目获取项目列表: router.get('/projects', function(req, res, next) { gitlab.projects.all(function(projects) { res.json(projects); console.log(projects); }); }); 谢谢

从(node – express – mongodb)获取db结果到angular4

B / Wbuild立连接b / w nodejs&angular没有问题。 数据库结果也很好。 这是我现在面临的唯一问题。 我有2个不同的端口,但相同的服务器 0.0.0.0:3000 – 用于nodejs 0.0.0.0:4200 – 为angular 当我从angular度对节点(mongodb)进行api请求时,在浏览器控制台以及networking选项卡中可以看到它。 我怎么能过来呢?

NodeJS MongoDB传递参数在聚合pipe道中

如何将parameter passing给聚合? 我得到的参数,并试图传递它使用$match运算符,但查询返回空数组: app.get('/api/:name', function(req, res){ var name = req.params.name; console.log(name); db.collection('coll').aggregate([{$match: {name: '$name'}}, {$unwind: { path: "$dates", includeArrayIndex: "idx" } }, { $project: { _id: 0, dates: 1, numbers: { $arrayElemAt: ["$numbers", "$idx"] }, goals: { $arrayElemAt: ["$goals", "$idx"] }, durations: { $arrayElemAt: ["$durations", "$idx"]}}}]).toArray(function(err, docs) { if (err) { assert.equal(null); } else { […]

使用快速会话在MEAN应用程序中检查有效会话的最佳方法是什么?

在MEAN项目中,我一直使用express-sessions ( https://www.npmjs.com/package/express-sessions )和angular-route来pipe理用户login/authentication。 一旦用户login或注册,他们的用户数据(例如整个User )就被分配给一个会话,然后用户被redirect到一个新的页面: #!/dashboard 。 为了防止用户在没有首先注册或login的情况下访问#!/dashboard ,我从我的angular度控制器快速地进行“会话检查”,该angular度控制器传递到angular度工厂,快速ping服务器端做一个会话对象的检查。 如果一个会话存在,我返回一个布尔值true ,如果一个会话不存在,我发送布尔值false 。 然后,我做了一个条件语句:如果为true,继续在#!/dashboard页面上(用户会话有效)继续抓取post或用户数据等。 如果为false,则redirect到/login页面所在的位置(防止用户访问#!/dashboard )。 这完成了我的目标,即防止用户在浏览器中进入/#!/dashboard ,而无需login/注册,但这似乎是一个昂贵的解决scheme,并不是很干净。 有没有一个更清洁或更好的方式来执行此“会话检查”,以防止没有有效的login会话访问我的后端页面? 我已经使用了快递中间件,也许有办法快速检查每个请求? 有没有人有任何build议,我可以改善我的会议检查?

angular度4组件不加载MEAN堆栈

在这里完成Angular / MEAN初学者 – 如果我对理解你的任何回答有困难,请提前抱歉。 最近,我尝试用MEAN堆栈创build一个Web应用程序,并使用angular-cli创build一个基本的项目结构( ng new appName )。 当运行npm start (使用angular-cli命令, ng serve )而不对文件做任何修改时,一切都很顺利,默认的“Welcome to My App!” 页面呈现。 但是,一旦我创build了自己的server.js文件并将启动脚本更改为node start.js ,那么不再呈现<app-root></app-root>组件。 在控制台或npm start没有错误,所以我不太确定从哪里开始。 我查了一些论坛和一些用户说,错误的HTML可能是原因。 我将整个模板replace为“testing”,但没有任何东西会加载。 其他人说,我不得不包括在我的server.js文件中的静态path与app.use(express.static(path.join(__dirname, 'src'))); ,但我的组件仍然不会渲染。 我也注意到我的Typescript文件没有编译成Javascript,所以我照顾了这个问题,但没有效果。 我在想,我可能会缺less导入或呈现Angular组件的server.js文件中的东西,但我似乎无法find我的文件和Github上的示例之间的任何差异。 我的server.js文件是张贴在下面,希望有比我更多的经验的人可以发现我可能会失踪。 var express = require("express"); var bodyParser = require("body-parser"); var mongodb = require("mongodb"); var path = require("path"); var ObjectID = mongodb.ObjectID; var api […]

获取“ENOTEMPTY:目录不空,rmdir …”在angularCLI应用程序中安装express的错误。

我正在创build我的第一个MEAN应用程序。 我已经安装了angularCLI,也使用ng serve -otesting它 – 这个命令,然后我使用ng build应用程序也成功。 现在,当我试图安装“express”和“body-parser”时,我正在收到以下错误 ENOTEMPTY: directory not empty, rmdir '/media/iconflux/DATA/vinit/Mean/meanApp/node_modules/fsevents/node_modules/dashdash/node_modules/assert-plus' 我检查了它是空的目录。 我也尝试手动删除目录,但仍然没有成功。 这里是我用来安装express和body-parser的命令 npm install –save express body-parser 注意:我正在使用Ubuntu 14.0 任何帮助将不胜感激。