[MONGODB] MongoDB의 노드 체크 OBJECTID이 유효한 경우
MONGODBMongoDB의 노드 체크 OBJECTID이 유효한 경우
OBJECTID는 노드의 드라이버를 사용하여 유효한지 여부를 어떻게 확인할 수 있습니다
나는 시도했다 :
var BSON = mongo.BSONPure;
console.log("Validity: " + BSON.ObjectID.isValid('ddsd'))
하지만 대신 참 또는 거짓의 예외를 점점 계속. (예외 그냥 '던져 전자; // process.nextTick 오류, 또는'입니다 오류 '첫 번째 틱에서 이벤트'
해결법
-
==============================
1.isValid () 함수에서 유래하지만이 노드 MongoDB를 네이티브에없는 경우 확실하지.
isValid () 함수에서 유래하지만이 노드 MongoDB를 네이티브에없는 경우 확실하지.
당신이 24 진수 문자열을 확인하려면이 정규 표현식을 사용할 수 있습니다.
var checkForHexRegExp = new RegExp("^[0-9a-fA-F]{24}$");
github.com/mongodb/js-bson/.../objectid.js에서 촬영
-
==============================
2.isValid ()는 노드 MongoDB의 모국어에 의존성 인 JS-bson 라이브러리이다.
isValid ()는 노드 MongoDB의 모국어에 의존성 인 JS-bson 라이브러리이다.
누구든지이 질문을 발견, 나는 다른 답변에 추천으로이 방법을 다시하지 않는 것이 좋습니다. 대신 다음 예는 JS-bson에서 isValid () 메소드에 액세스, 노드 MongoDB를 네이티브 원래의 포스터처럼 사용되었다 계속 사용.
var mongodb = require("mongodb"), objectid = mongodb.BSONPure.ObjectID; console.log(objectid.isValid('53fbf4615c3b9f41c381b6a3'));
2018년 7월 업데이트 :이 작업을 수행하는 현재의 방법은 다음과 같습니다
var mongodb = require("mongodb") console.log(mongodb.ObjectID.isValid(id))
-
==============================
3.2.0 Joes의 대답에 먹기의 확장으로 ...이에서 유효 노드 MongoDB의 네이티브
2.0 Joes의 대답에 먹기의 확장으로 ...이에서 유효 노드 MongoDB의 네이티브
var objectID = require('mongodb').ObjectID objectID.isValid('54edb381a13ec9142b9bb3537') - false objectID.isValid('54edb381a13ec9142b9bb353') - true objectID.isValid('54edb381a13ec9142b9bb35') - false
-
==============================
4.GianPaJ의 조각은 훌륭하지만의 ObjectId가 아닌 진수를 충당하기 위해 약간 확장 될 필요가있다 @. 같은 파일의 라인 (32)을 나타냅니다 objectID에의도의 길이는 12 자입니다. 이 키는 MongoDB를 드라이버에 의해 24 자리 16 진수 OBJECTID로 변환됩니다.
GianPaJ의 조각은 훌륭하지만의 ObjectId가 아닌 진수를 충당하기 위해 약간 확장 될 필요가있다 @. 같은 파일의 라인 (32)을 나타냅니다 objectID에의도의 길이는 12 자입니다. 이 키는 MongoDB를 드라이버에 의해 24 자리 16 진수 OBJECTID로 변환됩니다.
function isValidObjectID(str) { // coerce to string so the function can be generically used to test both strings and native objectIds created by the driver str = str + ''; var len = str.length, valid = false; if (len == 12 || len == 24) { valid = /^[0-9a-fA-F]+$/.test(str); } return valid; }
-
==============================
5.나는 거기에 이미 OBJECTID 문자열을 확인하기 위해 논리와 같은 isValid 메소드를 노출하는 JS-bson 라이브러리에 풀 요청을했다 제출했다.
나는 거기에 이미 OBJECTID 문자열을 확인하기 위해 논리와 같은 isValid 메소드를 노출하는 JS-bson 라이브러리에 풀 요청을했다 제출했다.
-
==============================
6.당신은 몽구스를 사용하는 경우에 당신은 오히려 다른 라이브러리에 따라보다 검증에 몽구스를 사용할 수 있습니다.
당신은 몽구스를 사용하는 경우에 당신은 오히려 다른 라이브러리에 따라보다 검증에 몽구스를 사용할 수 있습니다.
if (!mongoose.Types.ObjectId.isValid(req.id)) { return res.status(400).send("Invalid object id"); }
-
==============================
7.아래는 내가 JOI 사용 형 OBJECTID 데이터이며, 검증 대상 ID에 노력하고 내 모델 (Joi.objectId을 ()가 필요합니다 ().)
아래는 내가 JOI 사용 형 OBJECTID 데이터이며, 검증 대상 ID에 노력하고 내 모델 (Joi.objectId을 ()가 필요합니다 ().)
const Joi = require('joi'); const mongoose = require('mongoose'); const Category = mongoose.model('Category', new mongoose.Schema({ name: { type: String, minlength: 5, maxlength: 50, required: true }, thumbnail: { type: String, minlength: 5, maxlength: 255, required: true }, subject_id: { type: mongoose.Schema.Types.ObjectId, ref: 'Subject', required: true }, timestamp: { type: Date, required: true, default: Date.now } })); function validateCategory(category) { const schema = { name: Joi.string().min(5).max(50).required(), subject_id: Joi.objectId().required(), }; return Joi.validate(category, schema); } exports.Category = Category; exports.validate = validateCategory;
값은 길이가 24 자 영숫자 문자열입니다 JOI-OBJECTID의 유효성을 검사합니다.
MongoDB의는 조이에 대한 검증을 OBJECTID.
-
==============================
8.당신은 서버러스를 사용하여 검증 및 ObjectId가에 사용자 정의 함수를 만들 수 있습니다
당신은 서버러스를 사용하여 검증 및 ObjectId가에 사용자 정의 함수를 만들 수 있습니다
from cerberus import Validator import re class CustomValidator(Validator): def _validate_type_objectid(self, field, value): """ Validation for `objectid` schema attribute. :param field: field name. :param value: field value. """ if not re.match('[a-f0-9]{24}', str(value)): self._error(field, ERROR_BAD_TYPE % 'ObjectId') ## Initiate the class and validate the information v = CustomValidator() schema = { 'value': {'type': 'objectid'} } document = { 'value': ObjectId('5565d8adba02d54a4a78be95') } if not v(document, schema): print 'Error'
from https://stackoverflow.com/questions/11985228/mongodb-node-check-if-objectid-is-valid by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] MongoDB를 - 배열의 마지막 요소에 쿼리? (0) | 2019.12.08 |
---|---|
[MONGODB] Node.js를에서 MongoDB를에 연결 ECONNREFUSED 오류 (0) | 2019.12.08 |
[MONGODB] 유성 : 컬렉션, 변수, 출판 및 구독 이름 사이의 차이점은 무엇입니까? (0) | 2019.12.08 |
[MONGODB] 예외 : 날짜에 BSON 유형 EòÒ에서 변환 할 수 없습니다 (0) | 2019.12.08 |
[MONGODB] MongoDB를 닷넷 드라이버 2.0 풀 (제거 요소) (0) | 2019.12.08 |