我正在尝试使用以下模式:
enum Option {
ONE = 'one',
TWO = 'two',
THREE = 'three'
}
interface OptionRequirement {
someBool: boolean;
someString: string;
}
interface OptionRequirements {
[key: Option]: OptionRequirement;
}
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎很简单,但是出现以下错误:
索引签名参数类型不能为联合类型。考虑改用映射对象类型。
我究竟做错了什么?
我正在为公司内部部署专用的npm模块。由于模块是在内部处理的,因此我们可以信任版本凹凸等。
我如何在各个项目中安装该模块,以便始终随每个模块都安装该模块的最新版本npm install,这样我就不必遍历大量项目并在每次package.json部署时都在其中更新版本?
请注意,这仅适用于选定的软件包,而不适用于所有软件包,即仅适用于我们私有服务器上托管的软件包。
我正在构建一个 Node/Express API 并使用 Joi 进行验证。这是一个很棒的软件包,并且非常有用。然而,我们已经厌倦了做这样的事情:
const mySchema = joi.object({
thing1: joi.string().required(),
thing2: joi.string().required(),
thing3: joi.string().required(),
thing4: joi.string().required(),
thing5: joi.string().required(),
}).required();
Run Code Online (Sandbox Code Playgroud)
我们希望默认情况下所有内容都是必需的,并手动调用.optional以覆盖它。事实上,这似乎是一个明智的默认设置——但暂时将其搁置一旁。
有没有办法实现这一目标?
这是有问题的代码:
const array = [
1, 2, 3
]
array.map(item => {
item = item + 1
})
console.log(array)
Run Code Online (Sandbox Code Playgroud)
我认为该方法item中的(第一个)参数map是对数组中原始项目的引用,并且直接改变它会更改第一个数组的内容......这不是真的吗?
我有一个 GET all products 端点,它需要很长时间才能返回响应:
Product.find(find, function(err, _products) {
if (err) {
res.status(400).json({ error: err })
return
}
res.json({ data: _products })
}).sort( [['_id', -1]] ).populate([
{ path: 'colors', model: 'Color' },
{ path: 'size', model: 'Size' },
{ path: 'price', model: 'Price' }
]).lean()
Run Code Online (Sandbox Code Playgroud)
尽管产品集合中只有 60 个文档,但此查询最多需要4 秒。
这个查询来自以前的开发人员,我对 Mongoose 不太熟悉。
什么是性能后果sort和populate?我认为populate是这里的罪魁祸首?我不太确定populate在做什么,所以我不清楚如何避免它或在数据库级别建立索引以提高性能。
javascript ×5
node.js ×3
arrays ×1
ecmascript-6 ×1
joi ×1
mongodb ×1
mongoose ×1
nosql ×1
npm ×1
typescript ×1
validation ×1