Tag: express

如何使用Google数据存储创build模式(在JavaScript中)?

我正在编写使用Google数据存储的Nodejs应用程序。 我只是想知道如何设置架构与谷歌数据存储authentication过程。 基本上,我怎样才能做下面的代码与Google数据存储: var mongoose = require('mongoose'); var bcrypt = require('bcrypt-nodejs'); var userSchema = mongoose.Schema({ local : { email : String, password : String, } }); // generating a hash userSchema.methods.generateHash = function(password) { return bcrypt.hashSync(password, bcrypt.genSaltSync(8), null); }; // checking if password is valid userSchema.methods.validPassword = function(password) { return bcrypt.compareSync(password, this.local.password); }; // create […]

通过使用Ajax调用将数据从NodeJS发送到客户端

我通过运行Ajax调用在服务器上增加一个值,并在完成后更新我的UI function increaseHitpoints(){ $.ajax({ type: 'GET', url: 'http://localhost:8888/incHp/2312' }).done(function (data) { $("#txtHitpoints").html(data); }); } 在我的app.js中,我读了一个JSON文件,操纵这个值,把它写回到这个文件并且把它返回给客户端 app.get('/incHp/:id', function (req, res) { var database = './database.json'; fs.readFile(database, 'utf8', function (err, data) { // read the data var json = JSON.parse(data); var users = json.users; var hitpoints; users.find(u => { if (u.id === Number(req.params.id)) { // get the […]

在expressJS中捕获所有无效的URL也捕获静态或公共文件

我使用expressJs 3.x和节点0.8.8。 在我的应用程序,我试图赶上所有无效的url。 所以我添加了下面的代码。 它工作正常,它也捕捉的url,如果我试图访问公共或静态文件。 app.all('/*', function(req, res){ \\ Do some action like redirecting or whatever … }); 如何避免或传递静态文件夹文件(GET请求)以及如何只捕获无效的URL?

cross domain CORS支持backbone.js

我正在尝试为我的骨干应用程序实施一个跨域设置。 我的服务器(express.js)允许跨域和凭证: var allowCrossDomain = function(req, res, next) { var allowedHost = [ 'http://localhost:3001', 'http://localhost:7357' ]; if(allowedHost.indexOf(req.headers.origin) !== -1) { res.header('Access-Control-Allow-Credentials', true); res.header('Access-Control-Allow-Origin', req.headers.origin) res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS'); res.header('Access-Control-Allow-Headers', 'X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version'); next(); } else { res.send({auth: false}); } } app.configure(function(){ …. app.use(allowCrossDomain); …. }); 我的客户端(backbone.js)被configuration为接受跨域: define(["backbone", "jquery", "underscore"], function (BB, […]

在Node.js中使用Express.js获取POST参数

我想要使​​用Express请求后获取一些POST参数,但我无法获取数据。 这是我的app.configure : app.configure(function() { app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(gzippo.staticGzip(__dirname + '/public')); app.use(gzippo.compress()); }); 在POST HTTP请求之后,我试图在控制台输出它: console.log(req.body); 对象总是空的。 任何想法,我忘了什么?

Node.js服务器GET在使用几个小时后分离API失败

在我的节点站点中,我调用了使用标准http get构build的restful API服务。 经过几个小时的沟通成功的工作,我发现请求停止发送,它只是等待,最终超时。 被调用的API仍然能够很好地接收来自其他地方的请求,但是当从站点发送请求时,它不会到达API。 我已经尝试了stream.pipe,util.pump,只是将文件写入文件系统。 我正在使用节点0.6.15。 我的网站和被调用的服务在同一台服务器上,所以正在调用localhost。 内存占用率大约为25%,CPU平均使用率约为10%。 一段时间后,我开始使用请求模块,但我得到相同的行为。 在失败varrys之前,它调用的数量似乎在5到100之间。最后,我必须重新启动站点,但不是API再次使其工作。 这里大概是什么在网站的代码看起来像: var Request = require('request'); downloadPDF: function(req, res) { Project.findById(req.params.Project_id, function(err, project) { project.findDoc(req.params.doc_id ,function(err, doc) { var pdfileName; pdfileName = doc.name + ".pdf"; res.contentType(pdfileName); res.header('Content-Disposition', "filename=" + pdfileName); Request("http://localhost:3001/" + project._id).pipe(res); }); }); } 我有很多可能发生的事情。

我怎样才能限制访问只有Ajax请求?

我用ajax请求加载inicio.jade $.ajax( { url:'/inicio', cache: false, type: 'GET', }).done(function(web) { $('#contenido_nav_principal').fadeOut(600,function() { $('#contenido_nav_principal').empty(); $('#contenido_nav_principal').html(web); $('#navegacion').animate({height:'600px'},200); $('#contenido_nav_principal').fadeIn(600); }); }); 从服务器的这个地址 app.get('/inicio',routes.inicio.inicio); 问题是我可以访问与http://www.mypage.com/inicio页面 如何限制只访问Ajax请求的访问和redirect到404错误页如果不是ajax请求

Node.js找不到url

我正在玩Node.js,试图做一个Twitter API的请求。 我正在使用Express生成的项目,所以我的app.js看起来像这样 var express = require('express') , routes = require('./routes') , http = require('http') , path = require('path') , url = require('url'); var app = express(); // all environments app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(app.router); app.use(express.static(path.join(__dirname, 'public'))); // development only if ('development' == app.get('env')) […]

我怎样才能检查给定的date是在MongoDB中的两个date之间?

{ "_id": { "$oid": "asdf976" }, "Categories": [{ "mainmodels": [{ "submodels": [{ "price": "2000", "submodelname": "lumia021", }, { "price": "2000", "submodelname": "lumia341", } ], "Status": "Active", "modelname": "lumia", "fromdate": "15/04/2016", "todate": "29/04/2016" }], "brand": "nokia" }], "rank": "1", "name": "first Mobile station" } { "_id": { "$oid": "asdf976" }, "Categories": [{ "mainmodels": [{ "submodels": [{ […]

用express来build立一个基本的服务器

我有一个node.js应用程序,当我尝试加载主页时,我遇到了错误消息。 我将尽我所能在下面布置我的架构。 它到index.js – > server.js – > router.js – > requestHandlers.js 我正在使用express(www.expressjs.com)和nodebeginner.org的组合。 对不起,很长的问题..只是想获得尽可能多的信息。 index.js(创build包含path名/请求处理程序信息的句柄对象,调用启动服务器的函数)我从router.route开始,并沿着每一步传递它 var server = require("./server"); var router = require('./router'); var requestHandlers = require('./requestHandlers'); // Routes var handle = {} handle['/'] = requestHandlers.home; server.start(router.route, handle) server.js(启动服务器,这是我要configuration服务器,从URL获取path名,并将其传递到路由模块) var http = require("http"); var url = require('url'); var express = require('express'); function start (route, handle) […]