ミドルウェアを使用して、エンドポイントが想定しているものを取得できることを確認できます。 Express Validator
インクルードしてみてください。あなたは、本体内のフィールドを確認することができますいずれかのエンドポイントで、その後
app.use(express.bodyParser());
app.use(expressValidator([])); // place after bodyParser
var expressValidator = require('express-validator')
、パラメータ、またはクエリ別途よう
req.checkBody('age', 'Invalid Age').notEmpty().isInt(); //required integer
req.checkBody('name', 'Invalid Name').notEmpty().isAlpha(); //required string
req.checkBody('name', 'Invalid Name').isAlpha(); // not required but should be string if exists
//for params use req.checkParams and for query req.checkQuery
var errors = req.validationErrors();
if (errors) {
res.send(errors).status(400);
return;
}
するか、次のことができます別のファイルでスキーマを定義して使用します。のは、validationSchemasディレクトリ
module.exports = {
'name': {
optional: true,
isLength: {
options: [{ min: 3, max: 15 }],
errorMessage: 'Must be between 3 and 15 chars long'
},
errorMessage: 'Invalid Name'
},
'email': {
notEmpty: true,
isEmail: {
errorMessage: 'Invalid Email'
}
},
'password': {
notEmpty: true,
errorMessage: 'Invalid Password' // Error message for the parameter
}
}
と検証の時点での車内userSignUp.jsを言ってみましょう:
var userSignUpSchema = require('./validationSchemas/userSignUp.js);
req.checkBody(userSignUpSchema);
if (req.validationErrors()) {
res.send(errors).status(400);
return;
}
あなたが別のスキーマファイルを追加し、フィールドに
を検証することができ、すべてのユースケースのフロントエンドの検証がいいですユーザーのために、フロントエンドの検証に依存することは決してありません。要求がフォームから来ていない場合は、むしろ悪意のあるボットやプログラマーがSQLインジェクションでカール要求を送信している場合はどうなりますか? – pfuri
ケース提案については、そうではありません。 OP投稿としてのコードは、値が空の場合にのみ有効で、私の答えはこれを明示的に示しています。 –
バックエンドとフロントエンドの両方を保護したい。 – Lev