Tag: 表示

如何防止无特权访问rest的APIurl?

这是一个关于node.js和restful api的问题。 我用mongoose.Schema创build了一个ProductModel,这是读取产品列表的路线。 app.get('/api/products', function (req, res) { ProductModel.find(function (err, products) { if (!err) res.json(products); else console.log(err); }); }); 当我在本地服务器上运行这个应用程序并访问url *:3000 / api / products时,我可以看到json数据列表。 如果我在真实的服务器上运行testing,那意味着访问url的任何人都可以看到数据。 我怎样才能真正隐藏其他用户的数据?

在node&express中注销函数

我想知道如何使用express和express部分在nodejs中实现注销function,我写的代码如下: app.get('/logout',function(req, res){ req.session.destroy(function(){ res.redirect('/'); }); }); 但是,当多个用户login时,如果其中一个用户注销,那么其他人login将被注销。 任何人都可以请告诉我如何正确实施这个? 谢谢 :)

通过expression式js中的路由调用函数对象

我的代码看起来像这样: router.route('/user') .post(function(req, res, next){ queryDB(arg1, arg2, prepareRes) }) .get(function(req, res, next){ queryDB(arg3, arg4, prepareRes) }); var prepareRes = function(err, data){ if(err) next(err); else{ req.data = data; } }; 当我运行这个代码时,我得到以下错误: ReferenceError: next is not defined 要么 ReferenceError: req is not defined 发生这种情况是因为req和next在prepareRes范围之外。 如何解决这个错误? 我不想在两个路由中重复相同的代码行,并且不可能使用 route.all 在我的情况。

设置快速启用使用静态CSS和JS文件

我在设置我的应用程序的中间件时遇到了麻烦,所以它为我的一些静态文件(如css和js)提供服务。 我希望能够包含我的index.html中公共目录中的css和js文件。 这是我目前的文件结构的图片。 这是我的快递服务器的代码。 server.js var express = require('express'); var path = require('path'); var app = express(); //config app.set('views', __dirname + ''); app.engine('html', require('ejs').renderFile); //app.use(express.static(__dirname + '/')); worked when everything was in jqtest app.use(express.static(__dirname + '/public')); //routes app.get('',function(req,res){ res.render('../public/views/index.html') }); app.env //server app.listen(process.env.PORT || 5000); console.log('app live in 5000'); 这些是我试图在我的index.html中使用的src标记,但不起作用。 我知道我可能需要为位于组件中的jquery文件另外设置一个app.use。 的index.html <link rel="stylesheet" type="text/css" […]

我可以从/ routes /加载所有路由与fs.readdir和装载与app.use(…)?

我试图学习如何使用Express,我注意到我的app.js中有一些重复的forms: var index = require('./routes/index') , login = require('./routes/login') , register = require('./routes/register') , logout = require('./routes/logout') , posts = require('./routes/posts') , user = require('./routes/user'); app.use('/', index); app.use('/login', login); app.use('/register', register); app.use('/logout', logout); app.use('/posts', posts); app.use('/user', user); 我想知道是否有可能使用fs.readdir从/路由获取所有路由,然后遍历它们运行app.use(…)。 我第一次尝试: routeFiles = fs.readdir('./routes/', function(err, files) { _.each(files, function(file) { name = file.split('.')[0] app.use("'/" + name + […]

MEAN堆栈 – 在前端显示来自MongoDB的信息

我正在尝试构build一个基本的MEAN栈应用程序,并且对于如何在前端显示存储在mongodb中的信息感到非常困惑。 build立数据库查询的过程是什么,然后在视图中显示。 服务器是否应该使数据库请求和angular度显示信息? 在所有的教程中,我一直在研究通过mongodb和angular /前端之间的交互,看起来非常模糊。 目前(正如我正在设置一个网球阶梯应用程序),我只想通过查询数据库中的信息来显示索引页面上的播放列表。 这是正确的方法吗? 对这个模糊的问题抱歉,但我真的很难理解这是如何实现的。 我最近一直在使用Rails作为比较(尽pipe显然是非常不同的),在这种情况下,你可以使用ActiveRecord来查询数据库,并为查询结果定义一个variables,然后在你的视图中使用该variables来显示数据。

当从Node + Express REST服务器获取JSON时,Ember数据会中断

我正尝试从Node.js和Express构build的REST服务器中获取JSON数据,然后在我的Ember#Route中将其用作模型。 我试图获取的数据: var books = [ { id: 98, author: 'Stanisław Lem', title: 'Solaris' }, { id: 99, author: 'Andrzej Sapkowski', title: 'Wiedźmin' } ]; 我使用的模型: App.Book = DS.Model.extend({ id: DS.attr('number'), author: DS.attr('string'), title: DS.attr('string') }); 我这样设置RESTAdapter: App.ApplicationAdapter = DS.RESTAdapter.extend({ host: 'http://localhost:8080' }); 制图: App.Router.map(function () { this.resource("books"); }); 我的路线如下所示: App.BooksRoute = Ember.Route.extend({ model: function […]

testingREST API – req.body undefined(Node.js / Express / Mocha / Supertest)

我正在尝试testingNode中构build的REST API。 我用Postman手工testing了这个API,没有问题,但是我用Mocha / Chai / Supertest编写testing时遇到了麻烦。 当我尝试testing发送到路由时,请求主体是未定义的。 在我迄今为止的研究中,似乎无法find与我正在做的和其他人有任何有意义的区别,但由于某些原因,我尝试发送的数据没有通过。 以下是路线的处理方式: router.route('/media') .post(RouteController.postMedia); RouteController.postMedia = function(req, res) { var media = new Media(); console.log(req.body); media.title = req.body.title; media.type = req.body.type; media.tags = req.body.tags; media.pubdate = req.body.pubdate; media.editdate = req.body.editdate; media.filename = req.body.filename; media.extension = req.body.extension; media.description = req.body.description; media.save(function(err) { if (err) res.send(err); res.json({ message: 'File […]

在NodeJS中存储服务器端cookie的位置?

我的后端/服务器正在调用需要authentication的远程REST服务apples 。 stream程如下: 使用ExpressJS $ http模块调用http://remote.service.com/api/login 。 此服务返回有效的cookie,给予成功的身份validation 使用ExpressJS $ http模块调用http://remote.service.com/api/apples 。 并发送从步骤1中获取的cookie 由于服务器在行中多次调用apple服务,因此我希望避免每次都进行身份validation,并希望获得有关如何从步骤1中存储cookie的提示,以便下次重新使用它。 我应该使用node-redis还是ExpressJS cookie-parser ? 我应该如何处理cookie过期? 编辑: Cookie可以保存在一个全局variables。 见下面的评论。

用快递删除一个mongoose条目

我是整个平均堆栈的新手。 我即将创build一个CRUD应用程序。 我已经有了简单的,C和R,但现在我想去D.不幸的是,当我试图删除一个条目,我得到一个500错误。 我的路线正在调用,但之后没有任何反应。 HTML <div ng-repeat="article in articles"> <form ng-click="deleteArticle(article)"> <button type="submit" class="btn btn-primary">Delete</button> </form> </div> angular 在我的控制器中的部分.. $scope.deleteArticle = function(article) { articlesFactory.removeArticle(article) } 而在工厂里被召唤的部分: art.removeArticle = function(article) { return $http.put('/articles/' + article._id + '/remove') }; 路线 … router.param('article', function(req, res, next, id) { var query = Article.findById(id); query.exec(function (err, article) { if (err) […]