有什么方法可以解析 Node 中 .lnk 文件的快捷方式数据(例如,主要是它指向的路径)?
我正在尝试使用Node.js Express创建MVC模式,但是在执行异步代码时,这似乎是一件不可能完成的任务。
举个例子:我正在从模型中的NeDB数据库中获取结果,如下所示:
控制器/database.js
// Database management stuff with NeDB
var data = {};
db.findOne({ _id: 1 }, (error, doc) => {
if (error) console.error(error);
data = doc;
}
Run Code Online (Sandbox Code Playgroud)
现在,我将在名为dbcontroller.js的控制器中使用它:
var nedb = require('../models/nedb.js');
module.exports.list = function(req, res, next) {
res.render('listpage', {
data: nedb.data,
});
Run Code Online (Sandbox Code Playgroud)
在routes / routes.js文件中:
var express = require('express');
var router = express.Router();
var dbcontroller = require('../controllers/dbcontroller.js');
// Other controllers...
router.get('/list', dbcontroller.list);
// Other route definitions...
module.exports = router;
Run Code Online (Sandbox Code Playgroud)
可爱的安排,不是吗?现在,可以肯定的是,NeDB findOne()函数是异步的,因此它将在module.exports之后执行,而不会执行。我想到的解决方案当然是将module.exports定义放入findOne()回调中!
db.findOne({ _id: …Run Code Online (Sandbox Code Playgroud) 我正在使用的模块应该在浏览器中作为一个很好的旧 Window 对象被调用,因此不会作为模块导入到文件中。出于这个原因,Typescript 的编译器对"Cannot find name [variable]". 有没有办法可以将 Typescript 找不到但我确定它会在运行时使用的名称“列入白名单”?
我一直在使用对象文字作为穷人的枚举,如下所示:
let enum = {
option1: Symbol("o1"),
option2: Symbol("o2"),
option3: Symbol("o3")
};
let item = enum.option2;
if(item === enum.option2) { console.log("Item is Option 2!") }
Run Code Online (Sandbox Code Playgroud)
我使用Symbol是因为我认为它比使用数字更具有语义意义——在这种情况下,我并不真正关心“枚举”携带的值,我只想检查相等性——但我有点担心这样做的性能考虑就这样。如果我继续使用符号代替整数,我是否会给处理器带来更大的压力?