可能重复:
C#中两个问号共同意味着什么?
嗨,我在C#中寻找MVC 2的一些培训,我找到了这个sintax:
ViewData["something"] = something ?? true;
Run Code Online (Sandbox Code Playgroud)
那么,那是什么'??' 是什么意思?
我知道JavaScript变量指向一个值:
var foo = true;
//... later
foo = false;
Run Code Online (Sandbox Code Playgroud)
所以在那个例子中我改变了foo
指向true
- > foo
指向false
,但如果我这样做:
for (var i=0; i<100; i++){
var someVar = i;
}
Run Code Online (Sandbox Code Playgroud)
我是否为每次迭代创建了一个新的var?
以下两种方法有什么不同吗?
var myvar;
for (var i=0; i<100; i++){
myvar = i;
}
Run Code Online (Sandbox Code Playgroud)
和
for (var i=0; i<100; i++){
var myvar = i;
}
Run Code Online (Sandbox Code Playgroud)
如果是这样,为什么?
我在生产中有一个使用 MongoDB 和 Mongoose 运行的 NodeJS 应用程序,其中有一个 Mongoose Schema,如:
var Product = new Schema({
"name": { type: String, required: true }
, "description": { type: String }
});
Run Code Online (Sandbox Code Playgroud)
现在,作为一项新要求,我将向本地的 Schema 添加一个新属性,如下所示:
var Product = new Schema({
"name": { type: String, required: true }
, "description": { type: String }
, "isPublic": { type: Boolean, default: true }
});
Run Code Online (Sandbox Code Playgroud)
当我重新启动 NodeJS 进程时,我期待更新所有当前文档(产品),所以现在每个文档都有一个isPublic
值为true
.
发生的事情是没有文档具有该新属性,如果我执行someProduct.Save({ isPublic: true })
它,它会被添加。
问题:有没有办法做到这一点?,我知道我可以使用 mongo 客户端从命令行执行 $set,但我想知道是否有一种方法可以让 Mongoose 在进程上更改架构后添加缺少的属性重新开始。
我收到错误:
2012-01-28T00:13:51+00:00 heroku[web.1]: Starting process with command `node server.js`
2012-01-28T00:13:51+00:00 app[web.1]:
2012-01-28T00:13:51+00:00 app[web.1]: node.js:134
2012-01-28T00:13:51+00:00 app[web.1]: throw e; // process.nextTick error, or 'error' event on first tick
2012-01-28T00:13:51+00:00 app[web.1]: ^
2012-01-28T00:13:51+00:00 app[web.1]: at Array.<anonymous> (module.js:423:10)
2012-01-28T00:13:51+00:00 app[web.1]: Error: Cannot find module '/app/server.js'
2012-01-28T00:13:51+00:00 app[web.1]: at Function._resolveFilename (module.js:320:11)
2012-01-28T00:13:51+00:00 app[web.1]: at Function._load (module.js:266:25)
2012-01-28T00:13:51+00:00 app[web.1]: at EventEmitter._tickCallback (node.js:126:26)
Run Code Online (Sandbox Code Playgroud)
我的节点应用服务器位于root的server.js中,我不知道如何解决这个问题.我是从cloud9ide完成的,它运行正常,我从那里进行了部署到heroku.