小编ale*_*lex的帖子

玉模板引擎,如何使用layout.jade?

我在node.js有一个网站; 创建一个页面,说mypage我注意到我需要创建一个layout.jademypage.jade文件.如果我mypage.jade没有显示代码,那么首先我必须填写layout.jade页面的布局.

我的问题是,如何在内部引用layout.jade我想加载mypage.jade某个容器中的内容,例如?我可以使用相同布局的不同页面吗?我怎样才能做到这一点?

谢谢

node.js express pug

18
推荐指数
2
解决办法
5万
查看次数

如何在Phonegap和Android 3.2下启用第三方Cookie?

我使用$ getJSON来命中Phonegap和Android下的node.js端点.代码看起来像这样

$.getJSON(
    serverURL + "/login?callback=?",
    "playerId=" + playerId + "&pwd=" + pwd,
    function(data){
        theCallbackFunction.call(null, JSON.parse(data));
    },
    function(jqXHR, textStatus, errorThrown) {
            alert('error ' + textStatus + " " + errorThrown);
    }
);  
Run Code Online (Sandbox Code Playgroud)

为响应登录请求,我的服务器发送回会话cookie.如果在浏览器中启用了"第三方Cookie",则此cookie仅在后续AJAX请求中被接受并返回.我发现较旧的Android设备(例如2.2)默认允许这样做,但新设备(3.2)不允许这样做.

是否可以强制Phonegap为我的Android应用程序启用第三方Cookie?

jquery android cordova

17
推荐指数
1
解决办法
2277
查看次数

Node.js:配置和路由在不同的文件中

我正在启动一个新的Node.js应用程序,这一次,我正在尝试正确组织代码而不是将所有内容放在同一个文件中.

我现在只有一个简单的设置server.coffee:

express = require 'express'
app = module.exports = express.createServer()

## CONFIGURATION ##

app.configure () ->
 app.set 'views', __dirname + '/views'
 app.set 'view engine', 'jade'
 app.use express.bodyParser()
 app.use express.logger('dev')
 app.use express.profiler()
 app.use express.methodOverride()
 app.use app.router
 app.use express.static(__dirname + '/public')

app.configure 'development', () ->
 app.use express.errorHandler({dumpExceptions: true, showStack: true})

app.configure 'production', () ->
 app.use express.errorHandler()

app.get '/', (req,res) ->
  res.render 'index'
    title: 'Express'

## SERVER ##
port = process.env.PORT || 3000 

app.listen port, () ->
  console.log "Listening on …
Run Code Online (Sandbox Code Playgroud)

javascript node.js coffeescript express

16
推荐指数
2
解决办法
3万
查看次数

如何访问express.js中的ejs对象

我正在使用带有ejs的express(node.js的web框架).现在我想创建自己的过滤器,如ejs github页面所述:

To add a filter simply add a method to the .filters object:

ejs.filters.last = function(obj) {
  return obj[obj.length - 1];
};
Run Code Online (Sandbox Code Playgroud)

问题:我如何访问该ejs对象?我在app.js中尝试过(天真):

ejs.filters.myfilter = function (obj) {
  ....
}
Run Code Online (Sandbox Code Playgroud)

这给了我错误:

ReferenceError: ejs is not defined
Run Code Online (Sandbox Code Playgroud)

ejs node.js express

5
推荐指数
1
解决办法
4684
查看次数

如何用Ace突出显示多行?

这里类似问题中提到的旧方法如下:

var editor = ace.edit("editor");
var Range = ace.require('ace/range').Range;
editor.setReadOnly(true);
editor.setTheme("ace/theme/github");
editor.getSession().setMode("ace/mode/javascript");
editor.getSession().addMarker(new Range(1, 0, 15, 0), "ace_active_line", "background");
Run Code Online (Sandbox Code Playgroud)

不幸的是它不起作用,你可以在这里看到:

http://jsbin.com/acotuv/1/edit

有什么建议?

javascript syntax-highlighting cloud9-ide ace-editor

5
推荐指数
1
解决办法
6361
查看次数

什么是Express/Jade中的"包含模板"?

这篇文章似乎暗示有include模板这样的东西.我已经进行了明显的谷歌搜索,但没有找到任何文档.

这些是什么?

node.js express pug

4
推荐指数
1
解决办法
1万
查看次数

连接1.8.0 - 多部分支持 - 强大的报告进度 - 大文件?

我遇到了TJ Holowaychuk关于多部分支持的帖子以及bodyParser现在如何直接执行我曾经使用过强大的东西.我认为它非常方便,同时我现在对如何处理感到困惑: - 上传大文件?connect-form是否处理支持上传大小为100MB的文件所需的所有内容? - 上传期间报告进度?我以前在更改之前调用了form.parse(..)事件,因为它全部由bodyParser处理,它从未调用过...

Holowaychuk说:"这样做的缺点是,如果您希望报告上传进度,或者在请求流式传输时访问文件和字段,则必须直接使用强大的"(http://tjholowaychuk.com/).我试着直接使用它.它对我有用的唯一方法是:

... app.use(app.router); 之前:

app.use(express.bodyParser());

所以我认为这解决了我的问题,直到我想使用无效的会话,因为必须在bodyparser之前放置路由器才能使上传工作,并且:app.use(express.cookieParser()); app.use(express.session({...})必须遵循:app.use(express.bodyParser());抛出会话....

所以:

什么是处理/配置文件上传的正确方法,以便报告进度工作和会话一起工作,使用这种新方式连接形式的小文件和大文件?

我对Node并没有超级经验,所以如果你做了回答,请尽可能记住.

谢谢!

file-upload connect node.js express

3
推荐指数
1
解决办法
828
查看次数

如何使用基于_id的Mongoose进行upsert?

当我这样做:

client_id = req.param("client_id") ? null
client =
  name: req.param "clientName"
  status: 'active'

Client.update {_id: client_id}, client, {upsert: true}, (err, updRes) ->
  if err
    res.json
      error: "Couldn't create client"
  else
    res.json client
Run Code Online (Sandbox Code Playgroud)

除了null _id字段外,它将创建一个新的客户记录.我假设这是因为upsert的插入部分看起来query要创建文档.我怎么能这样做,如果没有找到doc,那么插入一个新的ObjectId

upsert mongoose mongodb node.js coffeescript

3
推荐指数
1
解决办法
4937
查看次数

Express/Connect中间件如何工作?

我正在学习Node.js,我已经阅读了一些教程,比如The Node Beginner Book,用于学习核心功能.但是我越是阅读一些例子,我开始收集的疑虑就越多.

在另一个从教程中获得的示例中,我们可以看到,对于密钥的CRUD"读取"请求/documents/titles.json,我们返回一个值:

app.get('/documents/titles.json', loadUser, function(req, res) {
  Document.find({ user_id: req.currentUser.id },[], { sort: ['title', 'descending'] },
  function(err, documents) {
     res.send(documents.map(function(d) {
        return { title: d.title, id: d._id };
     }));
  });
});
Run Code Online (Sandbox Code Playgroud)

在此示例中,该函数loaduser()用于身份验证:

function loadUser(req, res, next) {
   if (req.session.user_id) {
      User.findById(req.session.user_id, function(err, user) {
         if (user) {
            req.currentUser = user;
            next();
         } else {
            res.redirect('/sessions/new');
         }
      });
   }
}
Run Code Online (Sandbox Code Playgroud)

我不明白的是:

  1. 我想node.js,在开始执行app.get之前,它会转到loaduser函数.loadUser()函数有三个参数:req,res,next,但至少我没有看到你如何从app.get()"req"参数传递给loadUser().从哪里来?
  2. loadUser()函数内部,当你执行时next(),它意味着函数app.get() …

node.js express

2
推荐指数
1
解决办法
3497
查看次数

如何在Mongoose中运行SlaveOk?

如何在Mongoose中调用SlaveOK?

例如,我有这个:

SiteModel.find({}, function(err, docs) { .... } );
Run Code Online (Sandbox Code Playgroud)

我应该这样做吗?

SiteModel.slaveOK().find({}, function(err,docs) { ... } );
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb slave node.js

0
推荐指数
1
解决办法
3603
查看次数