modelapp/model/setting.jsmodule.exports = app => { const mongoose = app.mongoose; const Schema = mongoose.Schema; const SettingSchema = new Schema({ site_title: { type: String }, site_logo: { type: String }, site_keywords: { type: String }, site_description:{ type: String }, no_picture:{ type: String }, site_icp:{ type: String }, site_tel: { type: String }, search_keywords: { type: String }, tongji_code: { type: String } }); return mongoose.model(‘Setting’, SettingSchema,‘setting’);}router.js router.get(’/admin/setting’, controller.admin.setting.index); router.post(’/admin/setting/doEdit’, controller.admin.setting.doEdit);controllerapp/controller/admin/setting.js’use strict’;const fs=require(‘fs’);const pump = require(‘mz-modules/pump’);var BaseController =require(’./base.js’);class SettingController extends BaseController { async index() { //提前给setting表增加一条数据 var result=await this.ctx.model.Setting.find({}); console.log(JSON.stringify(result)) if(result){ await this.ctx.render(‘admin/setting/index’,{ list:result[0] }); }else{ await this.ctx.render(‘admin/setting/index’); } } async doEdit() { let parts = this.ctx.multipart({ autoFields: true }); let files = {}; let stream; while ((stream = await parts()) != null) { if (!stream.filename) { break; } let fieldname = stream.fieldname; //file表单的名字 //上传图片的目录 let dir=await this.service.tools.getUploadFile(stream.filename); let target = dir.uploadDir; let writeStream = fs.createWriteStream(target); await pump(stream, writeStream); files=Object.assign(files,{ [fieldname]:dir.saveDir }) } //修改操作 var updateResult=Object.assign(files,parts.field); await this.ctx.model.Setting.updateOne({},updateResult); await this.success(’/admin/setting’,‘修改系统设置成功’); } }module.exports = SettingController;viewapp/view/admin/setting/index.html<%- include ../public/page_header.html %> <div class=“panel panel-default”> <div class=“panel-heading”> 商店设置 </div> <div class=“panel-body”> <div class=“table-responsive input-form”> <form action="/admin/setting/doEdit?_csrf=<%=csrf%>" method=“post” enctype=“multipart/form-data”> <ul class=“form_input”> <li> <span>网站标题:</span> <input type=“text” class=“input” name=“site_title” value="<%=list.site_title%>"/></li> <li> <span>网站logo:</span> <input type=“file” name=“site_logo”/> <br /> <span> </span> <img class=“pic” src="<%=list.site_logo%>" /> </li> <li> <span>网站关键词:</span> <input type=“text” class=“input” name=“site_keywords” value="<%=list.site_keywords%>"/></li> <li> <span>网站描述:</span> <textarea name=“site_description” style=“width:600px;"><%=list.site_description%></textarea></li> <li> <span>商品默认图片:</span> <input type=“file” name=“no_picture” /> <br /> <span> </span> <img class=“pic” src="<%=list.no_picture%>” /> </li> <li> <span>备案信息:</span> <input type=“text” class=“input” name=“site_icp” value="<%=list.site_icp%>"/></li> <li> <span>网站电话:</span> <input type=“text” class=“input” name=“site_tel” value="<%=list.site_tel%>"/></li> <li> <span>搜索关键词:</span> <input type=“text” class=“input” name=“search_keywords” value="<%=list.search_keywords%>"/></li> <li> <span>统计代码:</span> <input type=“text” class=“input” name=“tongji_code” value="<%=list.tongji_code%>"/></li> <li> <br/> <button type=“submit” class=“btn btn-primary”>提交</button> </li> </ul> </form> </div> </div> </div></body></html>效果