在运行命令刷新数据库之后,Sail.js需要重新启动服务器
从这个问题来看, 使用Web服务器之外的模型来启动js我学会了如何从terminal运行一个命令来更新logging。 但是,当我这样做时,更改不显示,直到我重新启动服务器。 我正在使用sails-disk适配器和v0.9
根据源代码 ,当创build相应的Waterline集合时,使用sails-disk
适配器的应用程序仅从文件加载一次数据。 之后所有的update
和destroy
发生在内存中,然后数据被转储到文件,但不被重新读取。
这就是说,你的情况是,一旦你的服务器正在运行,使用你的CLI实例改变数据库文件( .tmp/disk.db
)并不重要,因为解除Sails服务器将不知道关于更改,直到重新启动。
长话短说,解决方法很简单:使用另一个适配器。 我build议你去看看sails-mongo或sails-redis (尽pipe后者还在开发中),因为Mongo和Redis都有数据自动过期function( http://docs.mongodb.org/manual/tutorial/expire -data /,http://redis.io/commands/expire )。 另外, sails-disk
不适合生产,所以迟早你需要别的东西。
随着时间的推移,完成删除“过期logging”的一种方法是在/config/bootstrap.js
滚动自己的“类似于cron的工作”。 在伪代码中,它看起来像这样:
module.exports.bootstrap = function (cb) { setInterval(function() { < Insert Model Delete Code here> }, 300000); cb(); };
这种方法的缺点是,如果它抛出将停止服务器。 你也可以看看kue 。
- 酶如果React组件需要jQuery,则会引发错误
- TypeError:Dbschema(Mongoose Schema)不是函数
- passport.initialize()中间件不用于Express 4.10自定义callback
- NodeJS:TypeError:无法读取未定义的属性'user-agent'
- 如果子句在recursion函数中
- 使用Express的Node.js:如何redirectPOST请求
- browserify&factor-bundle依赖关系ID
- 处理path如/ search /:search(/ filter1 /:filter1)?
- 使用具有节点webapp的虚拟主机的logging器