Scalability 可扩展性: by default, non-relational databases are split (or “shared”) across many systems instead of only one. This makes it easier to improve performance at a lower cost.
Flexibility 灵活性: new datasets and properties can be added to a document without the need to make a new table for that data.
Replication 备用性: copies of the database run in parallel so if one goes down, one of the copies becomes the new primary data source.
// example find all documents whose name is David Person.find({name:'David'},function(error,data){ if(!error){ console.log(data) }else{ console.log(error) } })
L 表示最后,只能出现在DayofWeek和DayofMonth域。如果在DayofWeek域使用5L,意味着在最后的一个星期四触发。
W 表示有效工作日(周一到周五),只能出现在DayofMonth域,系统将在离指定日期的最近的有效工作日触发事件。例如:在 DayofMonth使用5W,如果5日是星期六,则将在最近的工作日:星期五,即4日触发。如果5日是星期天,则在6日(周一)触发;如果5日在星期一到星期五中的一天,则就在5日触发。另外一点,W的最近寻找不会跨过月份 。
Node.js® is a JavaScript runtime built on Chrome’s V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js’ package ecosystem, npm, is the largest ecosystem of open source libraries in the world.
/** A first working Express Server */ app.get('/',function(req, res){ res.send('Hello Express') })
/** Serve an HTML file */ app.get('/views/index.html',function(req,res){ let absolutePath = __dirname + '/views/index.html' res.sendFile(absolutePath) })
/** params add a '?' if the parameter is omissible */ app.get("/api/timestamp/:date_string/:addr_string?",function(req,res){ res.json(req.params.date_string) }) /** Request Headers */ app.get("/api/whoami", function (req, res) { var ip = req.header('x-forwarded-for') || req.connection.remoteAddress; var lang = req.header('Accept-Language'); var software = req.header('User-Agent'); console.log({"ip":ip,"language":lang,"software":software}) res.json({"ip":ip,"language":lang,"software":software}); });
// listen for requests const listener = app.listen(process.env.PORT, function() { console.log('Your app is listening on port ' + listener.address().port); });
VS Code extension 鼠标悬停在dependency的项上,可查看最新版本和依赖项目链接
关于版本号和构建编号
The standard build numbering convention makes use of a fourth numerical indicator which is appended to the release number, where the fourth indicator is the build number.
For verification builds, the build number starts with a “1”, and increments with each successive build. For each successive release, the build indicator starts again with zero’s.
For development builds, the build number starts with “20001” and increments with each successive build. For each successive release, the build indicator starts again with zero’s.