我有 TypeScript NestJS 项目。
我需要验证传入 API 的 DTO。它可以被描述为“创建项目”,其中我们有建筑类型(房屋、公寓、花园),并且根据该类型我们需要定义:
房屋类型示例:
{
type: HOUSE,
floors: [
{
name: "1st floor",
rooms: [
{
name: "bedroom"
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
平面类型示例:
{
type: FLAT,
rooms: [
{
name: "bedroom"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我过去在 的帮助下完成了这件事AJV
,但现在当我们迁移到 NestJS 时,我们开始使用class-validator
.
我的问题是,我是否可以在 中创建这些高级条件(例如,当类型为 FLAT 时,则仅期望 ROOMS,而不是 FLOORS)class-validator
?
在 Node.JS(CommonJS 模块)中管理模块的“旧方法”中,您可以执行以下操作:
Express.js 路由示例:app.use('/user', require("./user"));
当我使用 ES6 模块(导入、导出)并通过 babel 的 Node.JS 服务器转录时,如何做到这一点?
我不能只是这样做:app.use('/user', import {user} from './user');
我的 MYSQL 中有行,我需要 Sequelize.js 查询。
每行都有 JSON 类型的 col,例如:
[
{id: 1234, blah: "test"},
{id: 3210, blah: "test"},
{id: 5897, blah: "test"}
]
Run Code Online (Sandbox Code Playgroud)
我已经id
并且需要选择将其包含id
在数组中至少一个对象中的行。
我刚刚安装了 pm2(在 Debian 9 上),我需要运行少数用户的 NodeJS 服务器。每个用户都有自己的 NodeJS 服务器,我需要在它们下运行。不在根下。
例如我有用户“user1”:
pm2 startup
pm2 仍然适用于 user1,但重启后我无法控制 pm2 并且我收到此错误:
[PM2][ERROR] Permission denied, to give access to current user:
$ sudo chown user1:user1 /home/user1/.pm2/rpc.sock /home/user1/.pm2/pub.sock
如果我在 root 上执行这个命令,我可以再次控制 user1 上的 pm2,但是所有 NodeJS 服务器都以 root 身份执行!!
每次重启我都需要“授予”权限。
如何解决这个问题?
在 Node.js 中使用 Mongoose。我在 MongoDB 中有这样的模型结构:
{
"_id":"5ac17dc27707e91ed00cea7d",
"appid":123,
"name":"Stellaris",
"code":"xxxxxxxxxxx"
}
Run Code Online (Sandbox Code Playgroud)
我需要选择所有项目,但当有多个相同 appid 的项目时,仅选择一个或每个 appid。Distinct 仅返回一个字段的数组。如何选择整个对象,而不是具有相同 appid 的项目仅出现一次?
如何添加!important
到我的内联CSS属性?如果我在它之后添加它2px
只是忽略整个风格.
import React from "react";
export default class Todo extends React.Component {
render() {
const {text} = this.props;
const cardStyles = {
borderWidth: '2px'
};
return (
<div class="card mb-2 border" style={cardStyles}>
<div class="card-body">
<h5 class="card-title m-0">{text}</h5>
</div>
</div>
)
}
}
Run Code Online (Sandbox Code Playgroud) 现在还需要https://github.com/zilverline/react-tap-event-plugin吗?或者它已经直接实现到 React 的源代码中,并且点击延迟消失了。
如今,异步功能的标准是什么?
我不是在这里问基于选项的问题,而是要问2018年使用了更多的东西以及什么对将来的可伸缩性更好。
样式1:
const client = new SteamUser();
exports.setup = callback => {
client.on('webSession', async (sessionID, cookies) => {
offers.setup(client, cookies, callback);
});
client.on('error', err => {
callback(error)
});
};
Run Code Online (Sandbox Code Playgroud)
风格2:
const client = new SteamUser();
exports.setup = async () => {
return new Promise(function(resolve, reject){
client.on('webSession', async (sessionID, cookies) => {
resolve(await offers.setup(client, cookies));
});
client.on('error', err => {
reject(error)
});
});
};
Run Code Online (Sandbox Code Playgroud)
两者都通过以下方式在另一个文件中调用:
try{
await module.setup();
} catch(err){
console.log(err);
}
Run Code Online (Sandbox Code Playgroud) node.js ×5
ecmascript-6 ×2
javascript ×2
reactjs ×2
ajv ×1
babeljs ×1
css ×1
json ×1
material-ui ×1
module ×1
mongodb ×1
mongoose ×1
mysql ×1
nestjs ×1
pm2 ×1
promise ×1
react-redux ×1
root ×1
sequelize.js ×1
typescript ×1