我有多个带数字的输入,所以我需要一个如下所示的输出: [1,1,1,1,1]但不是这样,而是在控制台日志中输出:[" 1"," 1"," 1", " 1"," 1"]以及像这样的mongodb:[" 1,1,1,1,1"]。
在模型中,如果我设置为这样:
numbers: {
type: Number,
required: true
}
这是我用mongob和mongoose的代码:
router.post('/', (req, res)=>{
const newResult = Result({
numbers: req.body.numbers
});
newResult.save()
.then(savedResult=>{
ElectoralUnit.find({})
.then(electoralUnits=>{
res.redirect('/results');
});
});
});
我收到以下错误:
error: (node:5696) UnhandledPromiseRejectionWarning: ValidationError: StateResult
validation failed: numbers: Cast to Number failed for value "[ '1', '1', '1', '1', '1' ]"
at path "numbers"
我试图放type: [Number]
但没有运气。
但如果我设置为String而不是number,那么mongodb中没有错误但是字符串而不是整数。如何将数组设置为整数?
答案 0 :(得分:1)
由于您正在尝试存储Numbers数组,并且由于Mongoose会将类似数字的字符串转换为JavaScript Numbers,因此您需要确保实际存储数字数组并定义您的Scheme-输入
<?php
add_action( 'wp_enqueue_scripts', 'lahree-global-assets' );
function wlnb_wp_enqueue_scripts(){
wp_enqueue_style( 'lahree-global', WPMU_PLUGIN_DIR. '/lahree.css' );
if( site_url() == 'SPECIFIC_SITE_URL_1' )
wp_enqueue_style( 'lahree-site-1', WPMU_PLUGIN_DIR. '/lahree-1.css' );
if( site_url() == 'SPECIFIC_SITE_URL_2' )
wp_enqueue_style( 'lahree-site-2', WPMU_PLUGIN_DIR. '/lahree-2.css' );
}
add_action( 'wp_head', 'do_something' );
function do_something(){
if( site_url() == 'SPECIFIC_SITE_URL_3')
echo 'This is the Third Site';
if( site_url() == 'SPECIFIC_SITE_URL_4')
echo 'This is the Fourth Site';
}
确保验证前端和后端的输入。要避免使用numbers: {
type: [Number],
required: true
}
,请务必在UnhandledPromiseRejectionWarning
功能中添加.catch()
并将相应的响应发送到您的前端。