Tag: express

如何在nunjucks中使用JSON.parse

我在mongodb获取数据,并express返回发生没有错误,但我想在我的.find的最终结果中使用JSON.parse看到如何我试图做到这一点 app.get("/login", (req, res) => { var credentialClient = { expire_at: false, __v: false, _id: false }; rememberMe.find({ username: "test-login" }, credentialClient, function (err, credentialInfo) { if (err) { res.send(err); } else { res.render("login.html", { usernameClient: JSON.parse(credentialInfo) }); } }); }); 没有JSON.parse最终的渲染保持在我的login.html { username: 'test-login' } 最终结果出现在login.html <p class="center-align black-text" id="preFinalCredentialClient">{{ usernameClient }}</p> 感谢您的帮助!

在不超过堆栈限制的情况下,通过大量庞大的函数进行迭代或recursion的最佳方法是什么?

我有一个应用程序,我正在编写Node.js需要进行大量的configuration和数据库调用,以处理用户数据。 我遇到的问题是,在11800多个函数调用之后,Node会抛出一个错误并退出进程。 错误说:RangeError:超过最大调用堆栈大小 我很好奇,如果有其他人有这种情况出现,并知道他们如何处理这个。 我已经开始将我的代码分解成几个额外的工作文件,但即使如此,每次处理数据节点时,都需要触摸2个数据库(最多25次调用更新各种表),并执行一些清理检查。 我完全愿意承认,如果情况确实如此,我可能会做一些非最佳的事情,但是如果有一个更优化的方式,我会欣赏一些指导。 以下是我在数据上运行的代码示例: app.post('/initspeaker', function(req, res) { // if the Admin ID is not present ignore if(req.body.xyzid!=config.adminid) { res.send( {} ); return; } var gcnt = 0, dbsize = 0, goutput = [], goutputdata = [], xyzuserdataCallers = []; xyz.loadbatchfile( xyz.getbatchurl("speakers", "csv"), function(data) { var parsed = csv.parse(data); console.log("lexicon", parsed[0]); for(var […]

如何在没有页面重新加载的情况下将任意的JSON发送到node.js?

我的最终目标是在点击一个button时发送一个任意的JSON给node.js。 我目前只知道如何从窗体发送input。 以下是我发送表单信息的一些代码: function postForm() { $('form').submit(function(e) { e.preventDefault(); // no page reload $.post( $(this).attr('action'), $(this).serialize(), function(data) { console.log('Code for handling response here.') }, 'json' ); }); } HTML的外观如下所示: <form action='/send' method='post'> <input name= "foo" type="radio" value=1> <input type="submit" value="Submit"> </form> 相关的express / node.js代码如下所示: app.post('/send', function(request, response) { fs.appendFile('test.txt', JSON.stringify(request.body) + '\n', function(e) { if(e) […]

如何使用MongoLab在Heroku上设置MongoDB数据库?

我正在使用Express.js和MongoLab,我跟着Heroku安装程序来让MongoDB在生产环境中工作 ,把这段代码扔到我的app.js中 。 //Mongo on Heroku Setup var mongo = require('mongodb'); var mongoUri = process.env.MONGOLAB_URI || process.env.MONGOHQ_URL || 'mongodb://localhost/mydb'; mongo.Db.connect(mongoUri, function (err, db) { db.collection('mydocs', function(er, collection) { collection.insert({'mykey': 'myvalue'}, {safe: true}, function(er,rs) { }); }); }); 我的电子邮件表单(也在app.js中)有以下路线和字段: //Routes app.get('/', function(req, res) { res.render('index', { title: 'DumbyApp' }); }); //save new email app.post('/', function(req, res){ […]

如何使用Node和Express与coffeescript和requirejs?

这是我想要的。 使用快速Web服务器的节点应用程序 在服务器上使用coffeescript,更重要的是使用客户端 在客户端(最终在服务器上)使用require.js 我已经能够find为客户端连接 coffeescript的推荐方式是使用连接资产 。 这似乎需要使用玉助手实际编译咖啡脚本如。 !=js('monalisa.js') 似乎编译monalisa.coffee并生成正确的<script>标记。 现在我想使用require.js,在这里我绊倒。 如何确保连接资产正确编译所有内容,而不使用玉器助手? 这是我相当简单的app.js: require('coffee-script'); var express = require('express') , http = require('http') , path = require('path') , connectAssets = require('connect-assets'); var publicDir = path.join(__dirname, 'public'); var app = express(); app.configure(function(){ 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( […]

最安全的node.js / expressauthentication机制

我想用express来开发一个node.js应用程序。 该应用程序将支持多个访问级别。 所有用户将通过用户名和密码进行authentication。 我一直使用的authentication方法如下: 用户已通过用户名和密码进行身份validation 使用会话支持安装Express后,我使用request.session对象来存储所有用户的信息和证书,并且每当新的调用从同一用户进入服务器时,我都会检查它 这个过程有多安全? 它使用cookies吗? 它是否有漏洞? 通过websockets和socket.io或其他不同方式控制会话更安全吗? 提前致谢

Express.js应用程序不能干净地closuresserver.close()

我试图在应用程序closures时正确closuresMongoDB连接。 这里是代码: var express = require('express') , http = require('http') , mongoose = require('mongoose') , path = require('path'); var app = express(); app.set('port', process.env.PORT || 3000); mongoose.connect('mongodb://localhost/test'); // some post and get handlers etc. (removed for shorter output) var server = app.listen(app.get('port'), function(){ console.log('Express server listening on port ' + app.get('port')); }); function cleanup () […]

node.js相当于一个标准的PHP ajax保存scheme

在一个JavaScript(客户端)+ PHP(服务器)网站,我有这个scheme保存一个“ online notepad ”(在#textbox textarea)到服务器: // client-side $("#save-button").on('click', save); function save(e) { $.ajax({ type: "POST", url: "/php/save.php", data: { projectname: $('#projectname').text(), data: $('#textbox').text() }, success: function(data) { alert('Data saved'); }, error: function(data) { console.log(data); } }); } 这在服务器端( /php/save.php ): <?php $projectname = $_POST['projectname']; $data = $_POST['data']; // save this into database ?> node.js(client […]

将Ember.js与Node.js(Express + Tower.js)集成

我正在研究将Ember.js与Node.js + Express + Tower.js集成的解决scheme。 我刚刚开始研究Tower.js(最近几个小时),看起来框架提供了一个很好的结构来放置服务器端和客户端代码(类似于Rails中的assets文件夹)。 由于一切都在Javascript中,我可以将Ember应用程序代码: 完全在客户端,即发送一切请求。 只服务于最初需要的东西,仅在需要时才提供服务。 在第二个解决scheme中,可以在服务器上呈现视图并发送纯HTML。 那么Ember(控制器,模型,状态,…)的应用程序逻辑呢? 怎样才能更好地与服务器端Javascript(如node.js + Express + Tower.js)集成,以便重复代码被最小化。 在一个理想的情况下,你定义每个模型/控制器/等一次,并在服务器和客户端上使用它。

如何在Express中构buildapp.configure

我使用Express 3.0 alpha来构build应用程序,但与应用程序configuration结构有点混淆 app.configure -> app.set "views", __dirname + "/views" app.set "view engine", "jade" app.use express.bodyParser() app.use express.methodOverride() app.configure "development", -> app.use express.logger("dev") app.configure "production", -> app.use express.logger() 是第一个app.configure, ->必填? 我一直在浏览其他人的应用程序,如果我使用它,似乎并不重要。 订购如何为app.configure, ->工作app.configure, -> ? 在第一个app.configure, ->之后放置特定环境(开发和生产)似乎是正确的app.configure, ->正如我在其他应用程序中看到的,但它似乎不适用于我的应用程序(即logging器不打印在我的控制台中的任何东西)。 提前致谢!