Tag: express

如何与Node.js和Expressasynchronous加载和显示网页内容?

作为JavaScript和相关框架的初学者,如果我的问题看起来很愚蠢,我很抱歉。 无论如何…是否有一些本地技术负载和显示网页内容与Node.js和Expressasynchronous? 是否应该使用XMLHttpRequest对象的目的或存在更好的select? 最好的问候,六。

Socket.io,安全和多人游戏

我目前正在制作一个在线游戏,我想知道Node.js和socket.io的安全性。 游戏的当前状态 我所有的 io.sockets.on('connection', function (socket) { socket.on('request', function (data) { }) }); 是安全的。 玩家可以发出任何请求(请求在这个例子中是指'请求')与任何数据(指数据),他们将不能利用它,即使他们手动修改他们发出的请求和数据并绕过客户端的基本安全。 他们也不能通过发送无效数据来使服务器崩溃。 注:我只有2发射:发射用户/通过login和发射input。 服务器虽然通过各种“发射”发送数据。 session()或GET / POST没有“通常”的概念。 在客户端,我专门使用 var socket = io.connect('http://something:3000'); socket.emit('request', data); 对于玩家需要获取代码+图片的静态资源,它看起来像: app.use(express.static(__dirname + '/public')); 对于数据库: client = mysql.createConnection({ host: 'localhost', user: 'root', password: 'something',}); client.connect(); client.query('USE dbname'); 最后是路由?,我显示相同的页面,不pipe请求: app.get('/', function (req, res) { res.sendfile(__dirname + '/index.html'); }); […]

为什么multipart不会产生closures事件

嗨,我不会处理上传stream自己没有接触磁盘驱动器。 所以,我的自然select是多方面的模块。 我采取了一般的例子,并根据https://npmjs.org/package/multiparty页面的说明我把form.parse改为非callback请求。 在这种情况下,磁盘将不会被触摸。 我的代码如下所示: multiparty = require("multiparty") http = require("http") util = require("util") # show a file upload form http.createServer((req, res) -> if req.url is "/upload" and req.method is "POST" form = new multiparty.Form() form.on 'error', (err) -> console.log "Error received #{err}" form.on 'aborted', -> console.log "Aborted" form.on 'part', (part) -> console.log "Part" form.on […]

Express.js – 在URL中过滤一个mongodb标识

这个问题启发了这个职位,但在我的情况下,我需要过滤MongoId。 是否可以轻松地进行筛选,因为我需要在每个path中使用它? app.post('/:mongoId(^[0-9a-fA-F]{24}$)', function(req, res){ // Send query based on mongoId }

AJAX后快速返回没有数据req.query(是的,有相同的q,但没有任何工作)

这是我的设置。 但是当我通过ajax发送数据的时候,body是空的。 在networking下的Chrome上,我看到了post和内容,正确的有效载荷: {"EventName":"asd","PrivacyLevel":1,"TypeInt":1,"ExpectedDate":"asd","Desc":"asd","Down":0,"Up":0,"PostCode":"","Address":"","ID":""} 大多数人说它的身体parsing器,我已经把parsing器放在app.use(app.router)之上我不知道它是否与express.json()创build任何冲突,但是当我评论它没有任何区别。 app.set('port', process.env.PORT || 3000); app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.json()); app.use(express.urlencoded()); app.use(express.methodOverride()); app.use(express.cookieParser('secret')); app.use(express.session({ secret: 'randomstring' })); app.use(express.bodyParser()); app.use(app.router); app.use(express.static(path.join(__dirname, 'public'))); $.ajax({ url: window.location.origin + '/registerEvent', contentType: 'application/json: charset=utf-8', dataType: 'json', type: 'POST', data: JSON.stringify(Event.toJSONString()), cache: false, timeout: 5000, async: false, success: function (result) { success = […]

如何编写一个节点快递应用程序,服务大多数本地文件,但重新路由到另一个域?

我正在开发一个小型web应用程序,通常使用相对复杂的stream程构build,然后部署到WebLogic。 不过,我正在使用的部分是使用AngularJS,并且都是HTML和Javascript。 它通常使ajax调用到同一个域上的另一个webapp。 为了缩短我的开发周期,我想避免构build过程,并重新加载浏览器页面。 我想我可以用“节点快递”来做到这一点,但是细节让我无法理解。 我已经设法定义一个非常简单的应用程序,只是提供本地文件,但现在我必须弄清楚如何检测这些path中的一些匹配expression式,并将这些请求重新路由到请求到外部域。 所以,如果它得到“/diag/stuff.html”,“/foo/thing.html”,或者只是“/index.html”的请求,它会发回匹配相同path的文件。 但是,如果path匹配“/fooService/.*”,那么我必须将GET的响应发回到相同的path,但是在不同的主机和端口上。 到目前为止,这是我的小应用程序: var express = require('express'); var app = express(); app.use("/", express.static(__dirname)); app.listen(8000); 更新: 我喜欢代理的想法,所以我做了一个“http-proxy”的本地安装(我忘记了,并且首先进行了全局安装),然后将脚本更改为: var express = require('express'); var app = express(); var httpProxy = require('http-proxy'); var proxy = new httpProxy.RoutingProxy(); app.use("/", express.static(__dirname)); app.get('/FooService/*', function(req, res) { "use strict"; return proxy.proxyRequest(req, res, { host: "foohost.net", port: 80 […]

Express jsredirect – 不会更改url,也不会加载静态文件

我在节点js上使用express js作为我的应用程序的REST接口。 我也为我的客户端页面使用jQuery Mobile。 如果用户尝试input他们不被允许或不能访问的位置,我正在使用redirect来更改页面。 出于某种原因,url不会更改,因此它不会加载css和js文件。 我在另一个地方看到这是由于jQuery Mobile而发生的,他们build议使用rel=external 。 我不知道如何将它与快速接口一起使用。 任何build议来评论我的问题?

nodejs不读取JSON

这一定是非常明显的,但我花了足够的时间: Node express获取浏览器中设置的JSON对象。 对象名称是dddd。 当我: console.log(req.params.dddd); 我得到: {"email":"abc@def.com"} 这正是我设置为node.js 但是当我: console.log(req.params.dddd.email); 我得到undefined … 我一定错过了这一点。 比你对任何人的帮助

passportjs本地策略没有被调用

我正在使用快递和护照来build立一个restAPI后端,似乎我的localStrategy没有被请求调用。 我的应用程序的入口点如下所示: app.js var fs = require('fs'); var express = require('express'); var mongoose = require('mongoose'); var passport = require('passport'); var config = require('./config/config'); var morgan = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var app = express(); app.use(morgan('dev')); // log every request to the console app.use(cookieParser()); // read cookies (needed for auth) app.use(bodyParser.urlencoded({extended:true})); […]

将Javascript从节点快递发送到angular度服务

我正在尝试为客户端和服务器共享的实用程序方法编写一个通用的JavaScript端点。 我已经阅读过,但我正在努力把握这些概念。 我在想,也许把它作为一个string发送和使用eval? 我不确定最佳做法是什么。 到目前为止,我得到了: 需要脚本的客户端服务。 angular.module('passionForgeApp').service('Utils', function () { //TODO Load these from the server side utlity module. } 节点工具导出 'use strict'; var Utility = function(){}; Utility.isASCII = function (str) { return /^[\x00-\x7F]*$/.test(str); }; Utility.isAlphaNumeric = function(str) { var code, i, len; for (i = 0, len = str.length; i < len; i++) { […]