From a1f19b06158c89dc26524dde71cb317a6ad4b10f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8A=93=E4=BD=8F=E4=BA=91=E6=9C=B5?= <2980290425@qq.com> Date: Thu, 11 Apr 2024 03:07:23 +0000 Subject: [PATCH 1/2] ee MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 抓住云朵 <2980290425@qq.com> --- "\351\203\221\345\256\266\347\202\234/app.js" | 136 ++++++++++++++++++ .../front/edit.html" | 41 ++++++ .../front/index.html" | 50 +++++++ .../front/statics/axios.min.js" | 2 + .../front/statics/base.js" | 65 +++++++++ .../front/statics/edit.js" | 65 +++++++++ .../front/statics/jquery-3.7.1.min.js" | 2 + .../package.json" | 12 ++ 8 files changed, 373 insertions(+) create mode 100644 "\351\203\221\345\256\266\347\202\234/app.js" create mode 100644 "\351\203\221\345\256\266\347\202\234/front/edit.html" create mode 100644 "\351\203\221\345\256\266\347\202\234/front/index.html" create mode 100644 "\351\203\221\345\256\266\347\202\234/front/statics/axios.min.js" create mode 100644 "\351\203\221\345\256\266\347\202\234/front/statics/base.js" create mode 100644 "\351\203\221\345\256\266\347\202\234/front/statics/edit.js" create mode 100644 "\351\203\221\345\256\266\347\202\234/front/statics/jquery-3.7.1.min.js" create mode 100644 "\351\203\221\345\256\266\347\202\234/package.json" diff --git "a/\351\203\221\345\256\266\347\202\234/app.js" "b/\351\203\221\345\256\266\347\202\234/app.js" new file mode 100644 index 0000000..90e2bde --- /dev/null +++ "b/\351\203\221\345\256\266\347\202\234/app.js" @@ -0,0 +1,136 @@ +import Koa from 'koa' +import Router from 'koa-router' +import bodyparser from 'koa-bodyparser' +import Cors from 'koa2-cors' +import {DataTypes, Sequelize, where} from 'sequelize' + +const app = new Koa(); + +let router = new Router(); +let sequelize = new Sequelize('nodedemo','sa','123456',{ + localhost:'.', + dialect:'mssql' + +}) +const Films = sequelize.define('Films',{ + director:{type:DataTypes.STRING}, + actor:{type:DataTypes.STRING}, + score:{type:DataTypes.INTEGER}, + flag:{type:DataTypes.STRING}, + +}) + + await Films.sync(); + router.get(`/films/:id?`, async (ctx) => { + let id = ctx.params.id * 1 || 0; + let data; + if (id > 0) { + let item = await Films.findByPk(id); + data = item; + } else { + let keyword = ctx.query.keyword; // 获取查询参数中的关键字 + if (keyword) { + // 根据关键字进行查询 + let list = await Films.findAll({ + where: { + [Sequelize.Op.or]: [ + { director: { [Sequelize.Op.like]: '%' + keyword + '%' } }, + { actor: { [Sequelize.Op.like]: '%' + keyword + '%' } }, + { flag: { [Sequelize.Op.like]: '%' + keyword + '%' } } + ] + + } + }); + data = list; + } else { + let list = await Films.findAll(); + data = list; + } + } + ctx.body = { + code: 1000, + data: data, + msg: "获取电影成功" + }; + }); + + +router.post(`/films`,async(ctx)=>{ + let obj=ctx.request.body; + // console.log(obj); + let row=await sequelize.models.Films.create(obj) + // console.log(row) + ctx.body={ + code:1000, + data:row, + msg:"创建电影成功" + + } +}) +router.put(`/films/:id`,async(ctx)=>{ + let id = ctx.params.id * 1 || 0; + console.log(ctx.request); + let reqParm = ctx.request.body; + + let rows = await sequelize.models.Films.findAll({ + where: { + id: id + } + }); + if (rows.length > 0) { + await sequelize.models.Films.update(reqParm, { + where: { + id: id + } + }) + // console.log(reqParm); + + ctx.body = { + code: 1000, + data:reqParm, + msg: '修改成功' + } + } else { + ctx.body = { + code: 4000, + msg: `id为${id}的电影未找到,请确认后重试` + } + } + // ctx.body = "修改电影"; +}) +router.delete(`/films/:id`,async(ctx)=>{ + let id = ctx.params.id ||0 + let row = await Films.findByPk(id) + // console.log(id); + // console.log(row); + if(row){ + Films.destroy({ + where:{ + id:id + } + }) + ctx.body={ + code:1000, + data:null, + msg:"删除成功" + } + }else{ + ctx.body={ + code:4500, + data:null, + msg:"没找到" + } + } +}) +app.use(Cors()) +app.use(bodyparser()) +app.use(router.routes()) + + + + + +let port=3000; +app.listen(port) + +console.log(`服务器运行在 http://localhost:${port}`) \ No newline at end of file diff --git "a/\351\203\221\345\256\266\347\202\234/front/edit.html" "b/\351\203\221\345\256\266\347\202\234/front/edit.html" new file mode 100644 index 0000000..2600502 --- /dev/null +++ "b/\351\203\221\345\256\266\347\202\234/front/edit.html" @@ -0,0 +1,41 @@ + + + + + + Document + + +
+ + + + + + + + + + + + + + + + + + + + + +
主演
导演
评分
标签
+ + + +
+
+ + + + + \ No newline at end of file diff --git "a/\351\203\221\345\256\266\347\202\234/front/index.html" "b/\351\203\221\345\256\266\347\202\234/front/index.html" new file mode 100644 index 0000000..42682ac --- /dev/null +++ "b/\351\203\221\345\256\266\347\202\234/front/index.html" @@ -0,0 +1,50 @@ + + + + + + Document + + + + +
+ + + +
+
+ + + + + + + + + + + +
序号导演主演评分标签操作
+
+ + + + + + + + + + \ No newline at end of file diff --git "a/\351\203\221\345\256\266\347\202\234/front/statics/axios.min.js" "b/\351\203\221\345\256\266\347\202\234/front/statics/axios.min.js" new file mode 100644 index 0000000..79aa153 --- /dev/null +++ "b/\351\203\221\345\256\266\347\202\234/front/statics/axios.min.js" @@ -0,0 +1,2 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).axios=t()}(this,(function(){"use strict";function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{},s=i.allOwnKeys,a=void 0!==s&&s;if(null!=t)if("object"!==e(t)&&(t=[t]),l(t))for(r=0,o=t.length;r3&&void 0!==arguments[3]?arguments[3]:{},i=r.allOwnKeys;return S(t,(function(t,r){n&&m(t)?e[r]=o(t,n):e[r]=t}),{allOwnKeys:i}),e},trim:function(e){return e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")},stripBOM:function(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e},inherits:function(e,t,n,r){e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:function(e,t,n,r){var o,i,s,u={};if(t=t||{},null==e)return t;do{for(i=(o=Object.getOwnPropertyNames(e)).length;i-- >0;)s=o[i],r&&!r(s,e,t)||u[s]||(t[s]=e[s],u[s]=!0);e=!1!==n&&a(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:u,kindOfTest:c,endsWith:function(e,t,n){e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;var r=e.indexOf(t,n);return-1!==r&&r===n},toArray:function(e){if(!e)return null;if(l(e))return e;var t=e.length;if(!v(t))return null;for(var n=new Array(t);t-- >0;)n[t]=e[t];return n},forEachEntry:function(e,t){for(var n,r=(e&&e[Symbol.iterator]).call(e);(n=r.next())&&!n.done;){var o=n.value;t.call(e,o[0],o[1])}},matchAll:function(e,t){for(var n,r=[];null!==(n=e.exec(t));)r.push(n);return r},isHTMLForm:T,hasOwnProperty:x,hasOwnProp:x,reduceDescriptors:N,freezeMethods:function(e){N(e,(function(t,n){var r=e[n];m(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=function(){throw Error("Can not read-only method '"+n+"'")}))}))},toObjectSet:function(e,t){var n={},r=function(e){e.forEach((function(e){n[e]=!0}))};return l(e)?r(e):r(String(e).split(t)),n},toCamelCase:function(e){return e.toLowerCase().replace(/[_-\s]([a-z\d])(\w*)/g,(function(e,t,n){return t.toUpperCase()+n}))},noop:function(){},toFiniteNumber:function(e,t){return e=+e,Number.isFinite(e)?e:t}};function _(e,t,n,r,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),o&&(this.response=o)}P.inherits(_,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}}});var B=_.prototype,D={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((function(e){D[e]={value:e}})),Object.defineProperties(_,D),Object.defineProperty(B,"isAxiosError",{value:!0}),_.from=function(e,t,n,r,o,i){var s=Object.create(B);return P.toFlatObject(e,s,(function(e){return e!==Error.prototype}),(function(e){return"isAxiosError"!==e})),_.call(s,e.message,t,n,r,o),s.cause=e,s.name=e.name,i&&Object.assign(s,i),s};var F="object"==("undefined"==typeof self?"undefined":e(self))?self.FormData:window.FormData;function U(e){return P.isPlainObject(e)||P.isArray(e)}function k(e){return P.endsWith(e,"[]")?e.slice(0,-2):e}function L(e,t,n){return e?e.concat(t).map((function(e,t){return e=k(e),!n&&t?"["+e+"]":e})).join(n?".":""):t}var q=P.toFlatObject(P,{},null,(function(e){return/^is[A-Z]/.test(e)}));function z(t,n,r){if(!P.isObject(t))throw new TypeError("target must be an object");n=n||new(F||FormData);var o,i=(r=P.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!P.isUndefined(t[e])}))).metaTokens,s=r.visitor||l,a=r.dots,u=r.indexes,c=(r.Blob||"undefined"!=typeof Blob&&Blob)&&((o=n)&&P.isFunction(o.append)&&"FormData"===o[Symbol.toStringTag]&&o[Symbol.iterator]);if(!P.isFunction(s))throw new TypeError("visitor must be a function");function f(e){if(null===e)return"";if(P.isDate(e))return e.toISOString();if(!c&&P.isBlob(e))throw new _("Blob is not supported. Use a Buffer instead.");return P.isArrayBuffer(e)||P.isTypedArray(e)?c&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function l(t,r,o){var s=t;if(t&&!o&&"object"===e(t))if(P.endsWith(r,"{}"))r=i?r:r.slice(0,-2),t=JSON.stringify(t);else if(P.isArray(t)&&function(e){return P.isArray(e)&&!e.some(U)}(t)||P.isFileList(t)||P.endsWith(r,"[]")&&(s=P.toArray(t)))return r=k(r),s.forEach((function(e,t){!P.isUndefined(e)&&n.append(!0===u?L([r],t,a):null===u?r:r+"[]",f(e))})),!1;return!!U(t)||(n.append(L(o,r,a),f(t)),!1)}var d=[],h=Object.assign(q,{defaultVisitor:l,convertValue:f,isVisitable:U});if(!P.isObject(t))throw new TypeError("data must be an object");return function e(t,r){if(!P.isUndefined(t)){if(-1!==d.indexOf(t))throw Error("Circular reference detected in "+r.join("."));d.push(t),P.forEach(t,(function(t,o){!0===(!P.isUndefined(t)&&s.call(n,t,P.isString(o)?o.trim():o,r,h))&&e(t,r?r.concat(o):[o])})),d.pop()}}(t),n}function I(e){var t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function M(e,t){this._pairs=[],e&&z(e,this,t)}var J=M.prototype;function H(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function V(e,t,n){if(!t)return e;var r=e.indexOf("#");-1!==r&&(e=e.slice(0,r));var o=n&&n.encode||H,i=P.isURLSearchParams(t)?t.toString():new M(t,n).toString(o);return i&&(e+=(-1===e.indexOf("?")?"?":"&")+i),e}J.append=function(e,t){this._pairs.push([e,t])},J.toString=function(e){var t=e?function(t){return e.call(this,t,I)}:I;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};var W,K=function(){function e(){t(this,e),this.handlers=[]}return r(e,[{key:"use",value:function(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}},{key:"eject",value:function(e){this.handlers[e]&&(this.handlers[e]=null)}},{key:"clear",value:function(){this.handlers&&(this.handlers=[])}},{key:"forEach",value:function(e){P.forEach(this.handlers,(function(t){null!==t&&e(t)}))}}]),e}(),X={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},$="undefined"!=typeof URLSearchParams?URLSearchParams:M,Q=FormData,G=("undefined"==typeof navigator||"ReactNative"!==(W=navigator.product)&&"NativeScript"!==W&&"NS"!==W)&&"undefined"!=typeof window&&"undefined"!=typeof document,Y={isBrowser:!0,classes:{URLSearchParams:$,FormData:Q,Blob:Blob},isStandardBrowserEnv:G,protocols:["http","https","file","blob","url","data"]};function Z(e){function t(e,n,r,o){var i=e[o++],s=Number.isFinite(+i),a=o>=e.length;return i=!i&&P.isArray(r)?r.length:i,a?(P.hasOwnProp(r,i)?r[i]=[r[i],n]:r[i]=n,!s):(r[i]&&P.isObject(r[i])||(r[i]=[]),t(e,n,r[i],o)&&P.isArray(r[i])&&(r[i]=function(e){var t,n,r={},o=Object.keys(e),i=o.length;for(t=0;t0;)if(t===(n=r[o]).toLowerCase())return n;return null}function le(e,t){e&&this.set(e),this[se]=t||null}function de(e,t){var n=0,r=function(e,t){e=e||10;var n,r=new Array(e),o=new Array(e),i=0,s=0;return t=void 0!==t?t:1e3,function(a){var u=Date.now(),c=o[s];n||(n=u),r[i]=a,o[i]=u;for(var f=s,l=0;f!==i;)l+=r[f++],f%=e;if((i=(i+1)%e)===s&&(s=(s+1)%e),!(u-n-1,i=P.isObject(e);if(i&&P.isHTMLForm(e)&&(e=new FormData(e)),P.isFormData(e))return o&&o?JSON.stringify(Z(e)):e;if(P.isArrayBuffer(e)||P.isBuffer(e)||P.isStream(e)||P.isFile(e)||P.isBlob(e))return e;if(P.isArrayBufferView(e))return e.buffer;if(P.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();if(i){if(r.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return z(e,new Y.classes.URLSearchParams,Object.assign({visitor:function(e,t,n,r){return Y.isNode&&P.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((n=P.isFileList(e))||r.indexOf("multipart/form-data")>-1){var s=this.env&&this.env.FormData;return z(n?{"files[]":e}:e,s&&new s,this.formSerializer)}}return i||o?(t.setContentType("application/json",!1),function(e,t,n){if(P.isString(e))try{return(t||JSON.parse)(e),P.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional||be.transitional,n=t&&t.forcedJSONParsing,r="json"===this.responseType;if(e&&P.isString(e)&&(n&&!this.responseType||r)){var o=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e)}catch(e){if(o){if("SyntaxError"===e.name)throw _.from(e,_.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Y.classes.FormData,Blob:Y.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};function ge(e,t){var n=this||be,r=t||n,o=le.from(r.headers),i=r.data;return P.forEach(e,(function(e){i=e.call(n,i,o.normalize(),t?t.status:void 0)})),o.normalize(),i}function Ee(e){return!(!e||!e.__CANCEL__)}function we(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new re}function Oe(e){return we(e),e.headers=le.from(e.headers),e.data=ge.call(e,e.transformRequest),(e.adapter||be.adapter)(e).then((function(t){return we(e),t.data=ge.call(e,e.transformResponse,t),t.headers=le.from(t.headers),t}),(function(t){return Ee(t)||(we(e),t&&t.response&&(t.response.data=ge.call(e,e.transformResponse,t.response),t.response.headers=le.from(t.response.headers))),Promise.reject(t)}))}function Re(e,t){t=t||{};var n={};function r(e,t){return P.isPlainObject(e)&&P.isPlainObject(t)?P.merge(e,t):P.isPlainObject(t)?P.merge({},t):P.isArray(t)?t.slice():t}function o(n){return P.isUndefined(t[n])?P.isUndefined(e[n])?void 0:r(void 0,e[n]):r(e[n],t[n])}function i(e){if(!P.isUndefined(t[e]))return r(void 0,t[e])}function s(n){return P.isUndefined(t[n])?P.isUndefined(e[n])?void 0:r(void 0,e[n]):r(void 0,t[n])}function a(n){return n in t?r(e[n],t[n]):n in e?r(void 0,e[n]):void 0}var u={url:i,method:i,data:i,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,beforeRedirect:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:a};return P.forEach(Object.keys(e).concat(Object.keys(t)),(function(e){var t=u[e]||o,r=t(e);P.isUndefined(r)&&t!==a||(n[e]=r)})),n}P.forEach(["delete","get","head"],(function(e){be.headers[e]={}})),P.forEach(["post","put","patch"],(function(e){be.headers[e]=P.merge(ve)}));var Se="1.1.2",Ae={};["object","boolean","number","function","string","symbol"].forEach((function(t,n){Ae[t]=function(r){return e(r)===t||"a"+(n<1?"n ":" ")+t}}));var je={};Ae.transitional=function(e,t,n){function r(e,t){return"[Axios v1.1.2] Transitional option '"+e+"'"+t+(n?". "+n:"")}return function(n,o,i){if(!1===e)throw new _(r(o," has been removed"+(t?" in "+t:"")),_.ERR_DEPRECATED);return t&&!je[o]&&(je[o]=!0,console.warn(r(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,o,i)}};var Te={assertOptions:function(t,n,r){if("object"!==e(t))throw new _("options must be an object",_.ERR_BAD_OPTION_VALUE);for(var o=Object.keys(t),i=o.length;i-- >0;){var s=o[i],a=n[s];if(a){var u=t[s],c=void 0===u||a(u,s,t);if(!0!==c)throw new _("option "+s+" must be "+c,_.ERR_BAD_OPTION_VALUE)}else if(!0!==r)throw new _("Unknown option "+s,_.ERR_BAD_OPTION)}},validators:Ae},xe=Te.validators,Ce=function(){function e(n){t(this,e),this.defaults=n,this.interceptors={request:new K,response:new K}}return r(e,[{key:"request",value:function(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{};var n=(t=Re(this.defaults,t)).transitional;void 0!==n&&Te.assertOptions(n,{silentJSONParsing:xe.transitional(xe.boolean),forcedJSONParsing:xe.transitional(xe.boolean),clarifyTimeoutError:xe.transitional(xe.boolean)},!1),t.method=(t.method||this.defaults.method||"get").toLowerCase();var r=t.headers&&P.merge(t.headers.common,t.headers[t.method]);r&&P.forEach(["delete","get","head","post","put","patch","common"],(function(e){delete t.headers[e]})),t.headers=new le(t.headers,r);var o=[],i=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(i=i&&e.synchronous,o.unshift(e.fulfilled,e.rejected))}));var s,a=[];this.interceptors.response.forEach((function(e){a.push(e.fulfilled,e.rejected)}));var u,c=0;if(!i){var f=[Oe.bind(this),void 0];for(f.unshift.apply(f,o),f.push.apply(f,a),u=f.length,s=Promise.resolve(t);c0;)o._listeners[t](e);o._listeners=null}})),this.promise.then=function(e){var t,n=new Promise((function(e){o.subscribe(e),t=e})).then(e);return n.cancel=function(){o.unsubscribe(t)},n},n((function(e,t,n){o.reason||(o.reason=new re(e,t,n),r(o.reason))}))}return r(e,[{key:"throwIfRequested",value:function(){if(this.reason)throw this.reason}},{key:"subscribe",value:function(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}},{key:"unsubscribe",value:function(e){if(this._listeners){var t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}}}],[{key:"source",value:function(){var t;return{token:new e((function(e){t=e})),cancel:t}}}]),e}();var Pe=function e(t){var n=new Ce(t),r=o(Ce.prototype.request,n);return P.extend(r,Ce.prototype,n,{allOwnKeys:!0}),P.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return e(Re(t,n))},r}(be);return Pe.Axios=Ce,Pe.CanceledError=re,Pe.CancelToken=Ne,Pe.isCancel=Ee,Pe.VERSION=Se,Pe.toFormData=z,Pe.AxiosError=_,Pe.Cancel=Pe.CanceledError,Pe.all=function(e){return Promise.all(e)},Pe.spread=function(e){return function(t){return e.apply(null,t)}},Pe.isAxiosError=function(e){return P.isObject(e)&&!0===e.isAxiosError},Pe.formToJSON=function(e){return Z(P.isHTMLForm(e)?new FormData(e):e)},Pe})); +//# sourceMappingURL=axios.min.js.map diff --git "a/\351\203\221\345\256\266\347\202\234/front/statics/base.js" "b/\351\203\221\345\256\266\347\202\234/front/statics/base.js" new file mode 100644 index 0000000..5027353 --- /dev/null +++ "b/\351\203\221\345\256\266\347\202\234/front/statics/base.js" @@ -0,0 +1,65 @@ +// import axiosMin = require("./axios.min") +function btnDel(id){ + if(confirm('确定要删除吗')){ + axios.delete(`http://localhost:3000/films/${id}`).then(res=>{ + let data=res.data; + if(data.code===1000) + { + let tr=$('.tr'+id) + tr.remove() + }else{ + alert(data.msg) + } + }) + } +} +function btnQuery(){ + let keyword=$('[name=keyword]').val() + axios.get(`http://localhost:3000/films?keyword=${keyword}`).then(res=>{ + console.log(res); + let data=res.data + if(data.code===1000){ + let tr = $('[class^=tr]'); + tr.remove() + renderTable(data.data) + } + }) +} + +function btnEdit(id){ + location.href='./edit.html?id='+id +} +function btnAdd(){ + location.href='./edit.html' +} + + +function renderTable(arr){ + // arr.innerHTML=''; + arr.forEach(item=>{ + + let tb=$('.tb') + let html=` + + ${item.id} + + ${item.director} + ${item.actor} + ${item.score} + ${item.flag} + + + + + + ` + tb.append(html) + }) +} +$(function(){ + axios.get('http://localhost:3000/films').then(res=>{ + // console.log(res); + let data=res.data + renderTable(data.data) + }) +}) diff --git "a/\351\203\221\345\256\266\347\202\234/front/statics/edit.js" "b/\351\203\221\345\256\266\347\202\234/front/statics/edit.js" new file mode 100644 index 0000000..3aa0a33 --- /dev/null +++ "b/\351\203\221\345\256\266\347\202\234/front/statics/edit.js" @@ -0,0 +1,65 @@ + + +function btnSave() { + +let director=$('[name=director]').val() + let flag=$('[name=flag]').val() + let score=$('[name=score]').val() + let actor=$('[name=actor]').val() + // 组合表单数据,传过去的是一个对象 + let obj = { + director: director, actor, score, flag + } + + let params = get(); + let id = params.id * 1; + // 如果id存在并且大于0,则认为是编辑,走修改的请求,否则走新增请求 + if (id > 0) { + axios.put(`http://localhost:3000/films/${id}`, obj).then(res => { + let data = res.data; + if (data.code === 1000) { + location.href = './index.html'; + } else { + alert(data.msg) + } + }) + } else { + axios.post(`http://localhost:3000/films`, obj).then(res => { + let data = res.data; + if (data.code === 1000) { + location.href = './index.html'; + } else { + alert(data.msg) + } + }) + } +} +function btnCancel(){ + location.href='./index.html' +} + +$(function(){ + let params=get() + let id=params.id *1 + // console.log(id); + if(id>0){ + axios.get(`http://localhost:3000/films/${id}`).then(res=>{ + let data=res.data + $('[name=director]').val(data.data.director); + $('[name=actor]').val(data.data.actor); + $('[name=score]').val(data.data.score); + $('[name=flag]').val(data.data.flag); + }) + } +}) + +function get (){ + const get = window.location.search + const urlparams=new URLSearchParams(get) + const params={} + for(let [key,value] of urlparams){ + params[key]=value + } + return params + +} diff --git "a/\351\203\221\345\256\266\347\202\234/front/statics/jquery-3.7.1.min.js" "b/\351\203\221\345\256\266\347\202\234/front/statics/jquery-3.7.1.min.js" new file mode 100644 index 0000000..7f37b5d --- /dev/null +++ "b/\351\203\221\345\256\266\347\202\234/front/statics/jquery-3.7.1.min.js" @@ -0,0 +1,2 @@ +/*! jQuery v3.7.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(ie,e){"use strict";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},C=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function m(e,t,n){var r,i,o=(n=n||C).createElement("script");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e}var t="3.7.1",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+ge+")"+ge+"*"),x=new RegExp(ge+"|>"),j=new RegExp(g),A=new RegExp("^"+t+"$"),D={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+p),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},N=/^(?:input|select|textarea|button)$/i,q=/^h\d$/i,L=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,H=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),P=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},M=function(){V()},R=J(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&U(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+Q(l[o]);c=l.join(",")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function z(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&R(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function X(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function U(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,r.msMatchesSelector&&ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener("unload",M),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,"*")}),le.scope=$(function(){return T.querySelectorAll(":scope")}),le.cssHas=$(function(){try{return T.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML="",e.querySelectorAll("[selected]").length||d.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+S+"-]").length||d.push("~="),e.querySelectorAll("a#"+S+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll(":checked").length||d.push(":checked"),(t=T.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+" "]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(O,P),e[3]=(e[3]||e[4]||e[5]||"").replace(O,P),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||I.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&j.test(n)&&(t=Y(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(O,P).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:S.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement("div")),(be=C.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML="",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML="",le.option=!!xe.lastChild;var ke={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n",""]);var je=/<|&#?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function Re(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="
",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return M(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return M(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.on("mouseenter",e).on("mouseleave",t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 0 Date: Sun, 14 Apr 2024 15:40:42 +0000 Subject: [PATCH 2/2] e MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 抓住云朵 <2980290425@qq.com> --- .../20240407--\345\244\215\344\271\240.md" | 130 ++++++++++++++++++ ...57\345\242\236\345\210\240\346\224\271.md" | 88 ++++++++++++ ...21\345\222\214\344\277\235\345\255\230.md" | 62 +++++++++ 3 files changed, 280 insertions(+) create mode 100644 "\351\203\221\345\256\266\347\202\234/20240407--\345\244\215\344\271\240.md" create mode 100644 "\351\203\221\345\256\266\347\202\234/20240408-\345\220\216\347\253\257\345\242\236\345\210\240\346\224\271.md" create mode 100644 "\351\203\221\345\256\266\347\202\234/20240409-\347\274\226\350\276\221\345\222\214\344\277\235\345\255\230.md" diff --git "a/\351\203\221\345\256\266\347\202\234/20240407--\345\244\215\344\271\240.md" "b/\351\203\221\345\256\266\347\202\234/20240407--\345\244\215\344\271\240.md" new file mode 100644 index 0000000..1b9af3b --- /dev/null +++ "b/\351\203\221\345\256\266\347\202\234/20240407--\345\244\215\344\271\240.md" @@ -0,0 +1,130 @@ +、后端(只有一张表时可不封装) +1.必备依赖包 +koa、koa-bodyparser、koa-router、koa2-cors、sequelize + +2.在入口文件app.ja中编写代码 +//1.导入模块 +//2.创建实例 +const app = new Koa(); +let router = new Router(); + //连接数据库(这里连接sqlServer) +let sequelize = new Sequelize('myData','sa','123456',{ + host:'localhost', + dialect:'mssql' +}); + //创建表,字段有fruitname、price +const Fruit = sequelize.define('Fruit',{ + fruitname:{type:DataTypes.STRING}, + price:{type:DataTypes.FLOAT}, +}); +//同步到数据库 +await Fruit.sync(); + +//3.处理函数 +//读取数据库(类似查询) +router.get('/fruit/:id?',async(ctx)=>{ + /*思路: + 1.尝试获取id,若id为0,则说明获取的是列表数据 + 2.通过ORM工具,向数据库获取列表数据或指定行数据(可根据需要实现分页功能) + 3.通过ctx.body返回响应数据 + */ + let id = ctx.params.id || 0; + if (id > 0) { + let item = await Fruit.findByPk(id); + ctx.body = { + code: 1000, + data: item, + msg: '获取指定数据' + } + } + else { + let list = await Fruit.findAll(); + ctx.body = { + code: 1000, + data: list, + msg: '获取全部数据' + } + } +}) +//创建数据(类似添加) +router.post('/fruit',async (ctx)=>{ + /*思路: + 1.获取传入的表单数据(实体参数)(可根据需求进行数据验证) + 2.通过ORM工具,将数据写入数据库 + 3.返回响应 + */ + let obj = ctx.request.body; + let newData = await Fruit.create(obj); + ctx.body={ + code:1000, + data:newData, + msg:'创建成功' + }; +}); +//修改数据 +router.put('/fruit/:id', async (ctx) => { + /*思路: + 1.获取指定id,在数据库查找对应数据 + 2.若存在则进行修改操作,若不存在则提示修改失败 + 3.返回响应 + */ + let id = ctx.params.id || 0; + let obj = ctx.request.body; + let item = await Fruit.findByPk(id); + if (item) { + let data = await Fruit.update(obj, { + where: { + id: id + } + }); + ctx.body = { + code:1000, + data:data, + msg:'修改成功' + } + } + else{ + ctx.body= { + code:4000, + msg:'修改失败' + } + } +}) +//删除数据 +router.delete('/fruit/:id',async (ctx)=>{ + /*思路: + 1.获取指定id,在数据库中查找对应数据行 + 2.若存在则进行删除操作,不存在则提示删除失败 + 3.返回响应 + */ + let id = ctx.params.id || 0; + let row = await Fruit.findByPk(id); + if(row){ + Fruit.destroy({ + where:{ + id:id + } + }); + ctx.body={ + code:1000, + data:null, + msg:'删除成功' + } + } + else{ + ctx.body={ + code:4000, + msg:'删除失败' + } + } +}); +//4.解决跨域 +app.use(cors()); +//5.使用中间件来解析传入post、put请求,拿到表单数据 +app.use(bodyParser()); +//6.注册路由 +app.use(router.routes()); +3.注意点 +在连接数据库的时候,要确认数据库的TCP/IP端口是否为1433 c3cb4efca29a2fc9f93d0ef3ca22782-2024-4-719:05:18.png +数据库连接失败时要注意看防火墙是否关闭 +在连接数据库的代码块中,localhost 是指数据库的主机地址,如果正在使用 Sequelize 连接到一个名为 myData 的 Microsoft SQL Server 数据库,并且该数据库托管在本地服务器上,那么就使用 localhost 作为主机地址;如果你的数据库不是托管在本地服务器上,而是托管在远程服务器上,那么你需要将主机地址更改为相应的远程服务器地址 \ No newline at end of file diff --git "a/\351\203\221\345\256\266\347\202\234/20240408-\345\220\216\347\253\257\345\242\236\345\210\240\346\224\271.md" "b/\351\203\221\345\256\266\347\202\234/20240408-\345\220\216\347\253\257\345\242\236\345\210\240\346\224\271.md" new file mode 100644 index 0000000..701e2a0 --- /dev/null +++ "b/\351\203\221\345\256\266\347\202\234/20240408-\345\220\216\347\253\257\345\242\236\345\210\240\346\224\271.md" @@ -0,0 +1,88 @@ +```js +// 创建电影(相对于数据库的插入) +router.post('/films', async (ctx) => { + let obj = ctx.request.body; + console.log(obj); + /* + 1. 获取传入的表单数据(实体参数)(根据业务需要可能需要做数据验证) + 2. 复用ORM工具,将数据写入数据库(数据验证) + 3. 返回创建成功的信息(根据业务,返回带id的记录) + */ + let row = await Films.create(obj); + + ctx.body = { + code: 1000, + data: row, + msg: '创建电影成功' + } +}) +// 创建用户(相对于数据库的插入) +router.post('/users', async (ctx) => { + let obj = ctx.request.body; + /* + 1. 获取传入的表单数据(实体参数)(根据业务需要可能需要做数据验证) + 2. 复用ORM工具,将数据写入数据库(数据验证) + */ +}) + +// 修改(相对于数据库的更新) +router.put('/films/:id', async (ctx) => { + let id = ctx.params.id || 0; + let obj = ctx.request.body; + console.log(id); + console.log(obj); + /* + 1. 通过id在数据库中查找对应记录 + 2. 如果有对应的记录,则进行修改;如果没有对应记录,则提示修改失败 + 3. 返回响应,剩下的让前端自己判断 + */ + let item = await Films.findByPk(id); + if (item) { + let data = await Films.update(obj, { + where: { + id: id + } + }); + ctx.body = { + code: 1000, + data: data, + msg: "修改成功" + } + } else { + ctx.body = { + code: 4000, + data: null, + msg: '找不到' + } + } +}) + +// 删除(相对于数据库的删除(软删除)) +router.delete('/films/:id', async (ctx) => { + let id = ctx.params.id || 0; + console.log(id); + /* + 1. 查找id对应的记录 + 2. 如果找到,则删除成功,返回响应提示成功;否则删除失败,返回未找到的响应 + */ + let row = await Films.findByPk(id); + if (row) { + Films.destroy({ + where: { + id: id + } + }) + ctx.body = { + code: 1000, + data: null, + msg: "删除成功" + } + } else { + ctx.body = { + code: 4000, + data: null, + msg: "找不到你要找的电影" + } + } +}) +``` \ No newline at end of file diff --git "a/\351\203\221\345\256\266\347\202\234/20240409-\347\274\226\350\276\221\345\222\214\344\277\235\345\255\230.md" "b/\351\203\221\345\256\266\347\202\234/20240409-\347\274\226\350\276\221\345\222\214\344\277\235\345\255\230.md" new file mode 100644 index 0000000..0865a77 --- /dev/null +++ "b/\351\203\221\345\256\266\347\202\234/20240409-\347\274\226\350\276\221\345\222\214\344\277\235\345\255\230.md" @@ -0,0 +1,62 @@ +```js +在edit.js文件里写: + +function btnSave() +{ + let director=$('[name=director]').val(); + let actor=$('[name=actor]').val(); + let score=$('[name=score]').val(); + let flag=$('[name=flag]').val(); + + let obj={director,actor,score,flag}; + + let params=getQueryString(); + let id=params.id*1; + if(id>0) + { + axios.put(`http://localhost:3000/films/${id}`,obj).then(res=> + { + let data=res.data; + if(data.code===1000) + { + location.href='./index.html'; + } + else + { + alert(data.msg); + }; + }); + } + else + { + axios.post('http://localhost:3000/films',obj).then(res=> + { + let data=res.data; + if(data.code===1000) + { + location.href='./index.html'; + } + else + { + console.log(data.msg); + }; + }); + }; +}; + +function getQueryString(str=window.location.search) +{ + const reg=/[?&]?([^=]+)=([^&]*)/g; + const params={}; + str.replace(reg,(_,k,v)=>params[k]=v); + return params; +} +在base.js文件里写: + +function btnEdit(id) +{ + location.href='./edit.html?id='+id; +}; + + +``` \ No newline at end of file -- Gitee