let movies = [
{
id: 1,
title: 'Spider-Man',
duration: 129,
genre: 'Adventure'
},
{
id: 2,
title: 'Toy Story 4',
duration: 100,
genre: 'Animation'
},
{
id: 3,
title: 'X-Men',
duration: 113,
genre: 'Action'
}
router.put(“/movies/:id”,function(req,res){}
但是我不知道在{}里面放什么
我不知道在{}里面放什么
包含更新数组的逻辑的代码。
例如:
router.put('/movies/:id', function(req, res, next) {
try {
// get id from :id, parse it to an int
let id = parseInt(req.params.id, 10) || false
// validate
if (!id) {
let err = new Error('Invalid movie id')
err.status = 422
throw err
}
// find the movie
let index = movies.findIndex(v => v.id === id)
if (index === -1) {
let err = new Error('Movie not found')
err.status = 404
throw err
}
// seems good, now lets validate body
let errors = {}
// id
if (!req.body.id) {
errors.id = 'Id is a required field'
} else if (isNaN(req.body.id)) {
errors.id = 'Id is invalid, number required'
}
//title
if (!req.body.title) {
errors.title = 'Title is a required field'
} else if (req.body.title.length <= 1) {
errors.title = 'Title too short, enter greater than 1 character'
} else if (req.body.title.length >= 255) {
errors.title = 'Title too long, enter less than 255 characters'
}
// duration
if (typeof req.body.duration === 'undefined') {
errors.duration = 'Duration is a required field'
} else if (req.body.duration < 0) {
errors.duration = 'Duration cannot be negative, enter greater than 0 minute'
} else if (req.body.duration >= 1440) {
errors.duration = 'Duration too long, enter less than than 1440 minutes (1 day)'
}
//genre
if (!req.body.genre) {
errors.genre = 'Genre is a required field'
}
// has errors
if (Object.keys(errors).length) {
let err = new Error('Invlid inputs')
err.status = 422
err.errors = errors
throw err
}
//
movies[index] = {
id: req.body.id,
title: req.body.title,
duration: req.body.duration,
genre: req.body.genre
}
// send success response
res.json({
status: 200
})
} catch (err) {
next(err)
}
})
app.use(function(error, req, res, next) {
// set response header
res.status(error.status || 500)
// is xhr/ajax
if (req.xhr) {
res.json(error)
}
// not ajax
else {
res.render('error', error)
}
})
我有一个要求,取决于地图的特定键值,我需要格式化输出。 例如,如果它的值大于1,那么只需要在值(12.23)后面显示2个小数点,或者如果它的值小于1,我需要在它后面显示4个小数点。 我已经编写了代码,它工作正常,但我正在寻找一种更好的方法来做到这一点(基本上我不喜欢我的代码中的其他条件) 这是我的程序,根据最后一个属性键值,我正在格式化输出
问题内容: 我正在尝试在Spring MVC控制器(版本3.0.2)中使用和。在Spring控制器类中,有三种与URL映射的方法,如下所示(分别是PUT,GET和POST,仅用于演示目的)。 加载页面时,该方法将很明显地被调用,但是在所有其他情况下(提交页面时),唯一要调用POST的方法是,永远不会调用用指定的方法。 Spring表单仅包含一个提交按钮和一个图像浏览器, 生成的HTML如下, 在我
问题内容: 我可以在HTML表单中使用PUT方法将数据从表单发送到服务器吗? 问题答案: XHTML 1.x表单仅支持GET和POST。GET和POST是“ method”属性的唯一允许值。
我正在使用shadowJar插件构建/创建我的fatJar。在我的身材里。格雷德尔我有这个 使用gradle shadowJar创建我的胖罐子。然而,创建的胖罐子的名称是一个简单的名称。全部是r100。罐子我想把它改成样本快照。r100部署。罐子如何使用ShadowJar覆盖jar名称。
我想使用Spring数据投影技术,以便仅从表中提取一些字段(而不是表中的所有字段)。 如留档(https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#projections)中所述,我创建了一个简单的界面,例如: 但我在使用它时遇到了一些问题。 问题1: 首先,我想使用名称findAll()创建一个查询,查找只有两个字