Tag: express

Angularjs在Express 4.0后端API上进行路由

我已经开始使用Express 4.0服务器的应用程序。 我已经在很大程度上根据scotch.io( http://scotch.io/tutorials/javascript/build-a-restful-api-using-node-and-express-4 )上的教程设置了路线,build立了一个后端api服务于前端SPA(angularjs)。 这里是后端路由器的摘录: router.route('/users') .get(function (req, res) { User.find(function(err, users) { if (err) { res.send(err); } else { res.json(users); } }); }) 再向下 // home page route (http://localhost:8080) router.get('/', function(req, res) { res.send('API ROOT'); }); app.use('/api', router); 从前端我只使用get来从api获取用户: $http.get('/api/users') .success(function(data) { $scope.users = data; }); 而angular度路线是这样设置的: .when('/', { templateUrl: 'views/home.html', controller: 'MainController' […]

Node.js Cluster + Express总是调用同一个worker

我正在尝试使用群集模块来处理与Express同时多个http请求。 通过下面的代码,我可以产生多个工作人员,并让他们都在同一个端口上进行监听。 大的for循环是模拟Web服务器上的重负载。 我想看到的是,如果工作人员在第二个请求进入时正忙于处理一个http请求,则会调用另一个worker并处理该第二个请求。 相反,当我尝试使用curl发出多个请求时,所有请求都由一个工作人员顺序处理; 即使他们已经分叉,也没有其他的工人被调用过。 难道是我使用Express不正确? 提前致谢! var cluster = require('cluster'); if (cluster.isMaster) { var cpuCount = require('os').cpus().length; for (var i = 0; i < cpuCount; i += 1) { cluster.fork(); } } else { var http = require('http'), app = require('express')(); http.createServer(app).listen(31415, function () { console.log(process.pid + " listening on 31415"); }); app.get('/', […]

node.js / express不需要从当前页面redirect发送请求

我有一个node.js快速应用程序试图发出一个请求,并查询数据库的内容。 我试图执行发布请求,而不必redirect用户从表单页面或重新加载页面。 index.jade form.well(id="newEntryForm", method="post", action="/addEntry") label Key: br input(name="key", id="key", class="new-entry", type="textbox") br br label Value: br input(name="value", id="value", class="new-entry", type="textbox") br br button.btn(type="submit") Add Entry app.js app.post('/addEntry', function(req, res){ //database query }); 这最终将我redirect到URL localhost:3000/addEntry 。 我知道我可以添加res.redirect("/"); 在post方法的callback中,但是会重新加载页面。 如何在不重新加载页面的情况下完成此操作? 编辑 我添加了一个javascript方法来执行提交表单,但是它最终会在URL栏上附加POST请求参数。 我如何避免这种情况? Javascript方法 $(function() { $('#newEntryForm').submit(function() { var data = {key: 'a', value: 'b'}; […]

Node.js页面redirect在AJAXlogin? redirect后有函数调用吗?

“/故事”页面是用户特定的,需要有效的login凭据。 validation是由节点,服务器端,并在redirect之前正确logging,但不redirect到故事页面。 这似乎是因为“ 你不能在AJAX之后进行redirect,你需要用Javascript自己来做 ”,但是这个问题的第一个答案中的代码似乎有些不完整。 另外,如何在redirect后成功调用后续函数(refreshStories)? 这里是AJAX: if (loginUsername.length != 0) { console.log('there is a login: ' + loginUsername); // make an ajax call $.ajax({ dataType: 'json', data: AjaxLoginData, type: 'post', url:"http://localhost:4200/api/v1/users", success: (data, textStatus, jqXHR) -> if typeof data.redirect == 'string' window.location = data.redirect success: refreshStories, error: foundError }); Node.js + Express4 router.route('/users') // […]

在Heroku上强制Node.js应用程序的HTTPS

我在部署到Heroku的node.js应用程序中强制使用SSL。 我想在所有场景中强制使用HTTPS。 我也使用Express。 我已经遵循这个职位上的代码: Heroku的NodeJS HTTP到HTTPS强制redirect (从arcseldon的答案)。 我正在使用Chrome进行testing。 这里是我的testing场景:如果我去www.mywebsite.com,它redirect到https://www.mywebsite.com – >这是工作正如我所料。 现在我在https://www.mywebsite.com 。 如果我在Chrome浏览器中访问url,并将“https”编辑为“http”,则会进入。 它只是通过http进行连接(我login了Chrome开发者工具)。 这是我的代码片段,以防我做错了事情。 var forceSsl = function (req, res, next) { if ( req.headers['x-forwarded-proto'] != 'https'){ console.log( 'forceSSL req.get = ' + req.get('Host') + ' req.url = ' + req.url ); return res.redirect('https://' + req.get('Host') + req.url ); } else { console.log( […]

阻止用户编辑URL以限制对服务器资源的访问

我正在使用node.js并表示提供使用SSLencryption的html文件。 但我注意到,用户可以更改url即。 如果url为https://localhost/index,html ,则为https://localhost/index,html https://localhost/anyother.html如何禁止用户编辑url,以便他们不能访问我的服务器的任何其他html文件。

无法从request.body中提取发布的数据

这是我的angular度发帖要求: var webCall = $http({ method: 'POST', url: '/validation', async : true, headers: { 'Content-Type': 'text/html' }, data: {email: "abc@gmail.com"}}); webCall.then(successHandler, errorHandler); 现在在我的nodejs服务器中,以下代码提取发布数据: app.post('/validation',function(req,res){ req.on('data',function(data){ console.log(data.toString()); }); 但是安慰请求体为: app.post('/validation',function(req,res){ console.log(req.body); } 控制台空的对象。

input是自我closures,不应该有内容Jade-Lang问题

我目前正在通过一些Node.js ExpressJS和MongoDB工作,并与Jade打成一片。 我不断收到一个input is self closing and should not have content当我去我的新用户页面input is self closing and should not have content错误。 我已经检查了这个网站上的所有内容,通过了玉郎文档,并得出结论,可以真正使用一些指导与这个玉僧尼。 感谢大家!! 这是我的代码: extends layout block content h1= title form#formAddUser(name="adduser",method="post",action="/adduser") input#inputUserName(type="text", placeholder="username", name="username") input#inputUserEmail(type="text", placeholder="useremail", name="useremail") button#btnSubmit(type="submit", value="submit") 这是我的错误信息: /home/evan/dev/nodetest1/views/newuser.jade:7 5| //- h1= title 6| form#formAddUser(name="adduser",method="post",action="/adduser") > 7| input#inputUserName(type="text", placeholder="username", name="username") 8| input#inputUserEmail(type="text", placeholder="useremail", name="useremail") 9| […]

app.post和app.use在节点expression有什么不同?

我使用命令curl -H "Content-Type: application/json" -d '{"name":"sparc_core","port":["p1", "p2"]}' http://127.0.0.1:3000/add_module来testingnodejs服务器。 起初,我的代码如下: app.post('/add_module', bodyParser.json()); app.post('/add_module', bodyParser.urlencoded()); app.post('/add_module', function(req, res, next) { req.body = JSON.parse(req.body.data); next(); }); app.post('/add_module', function(req, res) { console.log("Start submitting"); console.log(req.body); … … 运行curl命令后,节点服务器输出错误信息如下: SyntaxError:意外的令牌 在Object.parse(native) 在Object.app.post.res.send.error [as handle](/ home / xtec / Documents / xtec-simict / sim / app.js:80:21) 在next_layer(/ home / xtec / Documents […]

NodeJS示例应用程序无法启动,无法find“configuration”?

我正在学习节点,并试图运行一个示例应用程序,我从git拉: https://github.com/madhums/node-express-mongoose-demo 遵循所有的指示,当我跑步 npm start 我收到一个错误,说 > nodejs-express-mongoose-demo@4.0.0 start /Users/adam419/Desktop/Programming/JSPractice/node-express-mongoose-demo > NODE_PATH=./config:./app/controllers NODE_ENV=development ./node_modules/.bin/nodemon server.js 20 Dec 16:45:19 – [nodemon] v1.2.1 20 Dec 16:45:19 – [nodemon] to restart at any time, enter `rs` 20 Dec 16:45:19 – [nodemon] watching: *.* 20 Dec 16:45:19 – [nodemon] starting `node –harmony server.js` WARNING: No configurations found in configuration […]