exports.doRemove = function (req, res) { var id = req.query.id var music_index = 0 storage.forEach(function (item, index) { if (item.id == id) { music_index = index } }) storage.splice(music_index, 1) res.writeHead(302, { 'Location': 'http://127.0.0.1:3123' }) res.end() }
时间: 2024-03-14 08:49:51 浏览: 74
这段代码定义了一个请求处理器函数`doRemove`,并将其导出。
`doRemove`函数用于处理删除音乐信息的POST请求。首先从URL中的查询字符串中获取音乐的id,然后遍历`storage`数组,找到对应id的音乐对象,并使用`storage.splice()`方法将其从数组中删除。最后通过`res.writeHead()`方法设置响应状态码和重定向地址,向客户端发送响应,并结束响应。
相关问题
exports.showEdit = function(req,res) { var id = req.query.id var music = {} storage.forEach (function(item, index) { if(item.id == id) { music = item } }) res.render('edit',{ title:'编辑音乐', music: music }) } exports.doEdit = function(req,res){ console.log('doedit 被执行了') var id = req.query.id var data = '' req.on('data', function(chunk){ data += chunk }) req.on('end', function() { var postBody = qstring.parse(data) var music_index = 0 storage.forEach(function (item, index) { if(item.id == id){ music_index = index } }) storage[music_index].title = postBody.title storage[music_index].singer = postBody.singer res.writeHead(302, { 'Location': 'http://127.0.0.1:3123' }) res.end() }) }
这段代码定义了两个请求处理器函数`showEdit`和`doEdit`,并将其导出。
`showEdit`函数用于显示指定id的音乐信息。首先从URL中的查询字符串`req.query.id`中获取音乐的id,然后遍历`storage`数组,找到对应的音乐对象,并将其作为参数传递给`res.render()`方法,渲染`edit`模板并返回给客户端。模板中可以通过`music`对象来获取音乐信息。
`doEdit`函数用于处理编辑音乐信息的POST请求。首先从URL中的查询字符串中获取音乐的id,然后通过`req.on('data')`和`req.on('end')`事件对请求体进行解析,获取表单提交的数据。然后遍历`storage`数组,找到对应id的音乐对象,并将其`title`和`singer`属性更新为表单提交的数据。最后通过`res.writeHead()`方法设置响应状态码和重定向地址,向客户端发送响应,并结束响应。
exports.doAdd = function (req, res) { var form = new formidable.IncomingForm() form.uploadDir = config.uploadPath form.keepExtensions = true form.parse(req, function (err, fields, files) { if (err) { return res.end(err.message) } var title = fields.titlevar var singer = fields.singer var music = path.basename(files.music.path) var poster = path.basename(files.poster.path) var id = 0 storage.forEach(function (item) { if (item.id > id) { id = item.id } }) storage.push({ id: id + 1, title: title, singer: singer, music: music, poster: poster }) res.writeHead(302, { 'Location': 'http://127.0.0.1:3123' }) res.end() }) }
这段代码定义了一个`doAdd`函数,并将其导出。该函数是一个请求处理器,用于处理POST方式提交的表单数据。
函数中首先创建了一个`formidable.IncomingForm`实例,并设置了上传文件的保存路径和保留文件扩展名的选项。
然后通过`form.parse()`方法对请求体进行解析,获取表单字段和上传的文件信息。如果解析过程中发生错误,则返回错误信息给客户端。
接下来从表单字段中获取`title`和`singer`,从上传的文件信息中获取`music`和`poster`,并将其组成一个音乐对象。同时,通过`storage`数组中已有的对象的`id`来确定新对象的`id`,并将其添加到`storage`数组中。
最后通过`res.writeHead()`方法设置响应状态码和重定向地址,向客户端发送响应,并结束响应。
阅读全文