本文共 2951 字,大约阅读时间需要 9 分钟。
把一些公共的功能单独抽离成一个文件作为一个模块。
模块里的变量、函数、类等默认是私有的,如果要在外部访问,需要通过export暴露模块里面的数据,然后外部文件通过import引入模块就可以使用模块里的数据。
导出
export let dbUrl = '暴露数据';export function getData():any { console.log('暴露方法: ');}export function save() { console.log('我是save方法');}
导入
import { dbUrl, getData, save } from './modules/db'console.log('dbUrl: ', dbUrl);getData()
导出
let dbUrl = '暴露数据';export function getData():any { console.log('暴露方法: ');}function save() { console.log('我是save方法');}export {dbUrl, getData, save}
导入
import { dbUrl, getData, save } from './modules/db'console.log('dbUrl: ', dbUrl);getData()
一个模块只能有一个default导出。 需要使用特殊的导入形式
导出
let dbUrl = '暴露数据';function getData():any[] { console.log('暴露方法: ');}function save() { console.log('我是save方法');}export default getData;
导入
import getData from './modules/db'getData()
import { dbUrl, getData as get, save } from './modules/db'get()
注:import在浏览器中无法直接执行,需要借助webpack,测试时可以在vs code编译后这样执行$ node index.js
使用模块重新处理操作数据库的底层库,参考mongodb的封装方法
modules db.tsmodel user.ts article.tsindex.htmlindex.ts
interface DBI{ add(info:T):boolean; update(info:T, id:number):boolean; delete(id:number):boolean; get(id:number):any[];}// 定义一个mysql数据库的类export class MysqlDb implements DBI { add(info: T): boolean { console.log('info: ', info); return true; } update(info: T, id: number): boolean { throw new Error("Method not implemented."); } delete(id: number): boolean { throw new Error("Method not implemented."); } get(id: number): any[] { let list = [{title: 'xxx'}] return list }}// 定义一个操作Mssql数据库的类export class MsSqlDb implements DBI { add(info: T): boolean { console.log('info: ', info); return true; } update(info: T, id: number): boolean { throw new Error("Method not implemented."); } delete(id: number): boolean { throw new Error("Method not implemented."); } get(id: number): any[] { let list = [{title: 'xxx'}] return list }}
import { MysqlDb } from '../modules/db'// 定义数据库的映射class UserClass{ username: string | undefined; password: string | undefined;}let UserModel = new MysqlDb()export { UserClass, UserModel}
import { MysqlDb } from '../modules/db'// 定义数据库的映射class UserClass{ username: string | undefined; password: string | undefined;}let UserModel = new MysqlDb()export { UserClass, UserModel}
import { UserClass, UserModel } from './model/user'import { ArticleClass, ArticleModel } from './model/article'/* 操作用户表 */let u = new UserClass()u.username = '张三2'u.password = '1234'UserModel.add(u);let ulist = UserModel.get(1)console.log('ulist: ', ulist);/* 操作文章表 */let alist = ArticleModel.get(1);console.log('alist: ', alist);
转载地址:http://gqbgz.baihongyu.com/