我有这个作为我的Express服务器的配置
app.use(app.router);
app.use(express.cookieParser());
app.use(express.session({ secret: "keyboard cat" }));
app.set('view engine', 'ejs');
app.set("view options", { layout: true });
//Handles post requests
app.use(express.bodyParser());
//Handles put requests
app.use(express.methodOverride());
Run Code Online (Sandbox Code Playgroud)
但是当我req.body.something
在我的路线中要求时,我会得到一些错误指出body is undefined
.以下是使用req.body
以下路线的示例:
app.post('/admin', function(req, res){
console.log(req.body.name);
});
Run Code Online (Sandbox Code Playgroud)
我读到这个问题是由于缺乏而引起的,app.use(express.bodyParser());
但是你可以看到我在路线之前调用它.
任何线索?
这听起来像个愚蠢的问题,但我在互联网上找到的只是垃圾.我根本无法将类型的元素添加T
到列表中List[T]
.我试过myList ::= myElement
但似乎它创建了一个奇怪的对象并且访问myList.last
总是返回放在列表中的第一个元素.
我对Buffers和ReadableStreams很新,所以这可能是一个愚蠢的问题.我有一个库作为ReadableStream的输入,但我的输入只是一个base64格式的图像.我可以像这样转换Buffer中的数据:
var img = new Buffer(img_string, 'base64');
Run Code Online (Sandbox Code Playgroud)
但我不知道如何将其转换为ReadableStream或将我获得的Buffer转换为ReadableStream.
有没有办法做到这一点,还是我试图实现不可能的?
谢谢.
我想在Ubuntu 12.04上安装NodeJS版本0.8.18.我尝试安装最新版本,然后通过使用恢复到0.8.18 nvm
,但是当我运行我的代码时,显然安装的软件包和两个版本(最新版本和0.8.18)存在一些问题.由于我不知道如何解决这个问题,我从Node安装中清理了机器,并考虑直接安装我感兴趣的版本(v0.8.18).
我有以下代码:
for(var i = 0; i < list.length; i++){
mc_cli.get(list[i], function(err, response) {
do_something(i);
});
}
Run Code Online (Sandbox Code Playgroud)
mc_cli
是与memcached数据库的连接.可以想象,回调函数是异步的,因此可以在for循环结束时执行.此外,以这种方式调用时,do_something(i)
它始终使用for循环的最后一个值.
我用这种方式尝试了一个闭包
do_something((function(x){return x})(i))
Run Code Online (Sandbox Code Playgroud)
但显然这又是使用for循环索引的最后一个值.
我也尝试在for循环之前声明一个函数,如下所示:
var create_closure = function(i) {
return function() {
return i;
}
}
Run Code Online (Sandbox Code Playgroud)
然后打电话
do_something(create_closure(i)())
Run Code Online (Sandbox Code Playgroud)
但是再次没有成功,返回值始终是for循环的最后一个值.
任何人都可以告诉我,我的闭包装有什么问题吗?我以为我理解了它们,但我无法理解为什么这不起作用.
我正在尝试通过POST
从node.js服务器到另一个node.js服务器的请求发送数据.我在"client"node.js中所做的如下:
var options = {
host: 'my.url',
port: 80,
path: '/login',
method: 'POST'
};
var req = http.request(options, function(res){
console.log('status: ' + res.statusCode);
console.log('headers: ' + JSON.stringify(res.headers));
res.setEncoding('utf8');
res.on('data', function(chunk){
console.log("body: " + chunk);
});
});
req.on('error', function(e) {
console.log('problem with request: ' + e.message);
});
// write data to request body
req.write('data\n');
req.write('data\n');
req.end();
Run Code Online (Sandbox Code Playgroud)
这个块或多或少来自node.js网站,所以它应该是正确的.我唯一没看到的是如何在options
变量中包含用户名和密码来实际登录.这就是我如何处理服务器node.js中的数据(我使用express):
app.post('/login', function(req, res){
var user = {};
user.username = req.body.username;
user.password = req.body.password;
...
});
Run Code Online (Sandbox Code Playgroud)
如何将这些username
和password
字段添加到 …
我想从Node.js应用程序中的Mongoose设置中检索一些数据.我注意到无论我写什么作为场选择,我总是得到这个_id
领域.有没有办法不去取它?这就是我现在的做法:
Transaction.find({username : user.username}, ['uniqueId', 'timeout', 'confirmation_link', 'item_name'], function(err, txs){
console.log("user : " + user.username + " with txs: " + txs);
callback(txs);
});
Run Code Online (Sandbox Code Playgroud)
并记录包含该_id
字段的结果.
我对这种select
方法的使用感到很困惑.这就是我使用它的方式,这是错误的:
Transaction.find({username : user.username}).select('uniqueId', 'confirmation_link', 'item_name', 'timeout', 'username', function(err, txs){
callback(txs);
});
Run Code Online (Sandbox Code Playgroud)
我想要实现的只是从数据库中的事务中选择具有该用户名的事务,我想只取出select
方法中列出的字段.任何人都可以指出我应该如何使用该select
方法?谢谢.
我的node.js项目有一个jade模板.我想将一个对象发送到jade模板并将其传递给页面内的一个函数(以呈现某些东西).
我相信我会从服务器发送正确的东西
res.render(__dirname + '/pages/viz.jade', {
vizJson: newJson,
});
Run Code Online (Sandbox Code Playgroud)
在客户端我做这样的事情:
script
sunburst(#{vizJson})
Run Code Online (Sandbox Code Playgroud)
因此,在脚本函数中,我想调用一个函数,用我在服务器端创建的一些json创建我的可视化.
问题是,渲染时我有类似的东西sunburst([Object object])
.我也尝试发送JSON的字符串化版本,但是当我这样做时JSON.parse(#{vizJson})
会抱怨Unexpected token &
.
我发送的json总是不同的,并且具有不同的深度.
有谁知道该怎么办?
谢谢
我一直在GitHub上的例子中搜索,但我找不到如何将简单的css文件加载到我的布局中.我的第一个想法是做这样的事情,link(href="my.css")
但它似乎根本不起作用.href指向正确的在线位置(检查和工作),因此也许我忘了什么?