目录 · 6 个章节
实现一个简单 MySQL ORM 模块
支持类似如下的使用方法(最好包含基本的单元测试):
const orm = new MyORM({
// mysql连接信息
connection: {host: '127.0.0.1', port: 3306, user: 'root', password: '', database: 'test'},
});
orm.table('xxxx').find(query).skip(0).limit(20)
.then(list => console.log('results', list))
.catch(err => console.log(err))
orm.table('xxxxx').update(query, update)
.then(ret => console.log(ret))
.catch(err => console.log(err))
// 另外需要支持基本的 delete, findOne 等方法
实现一个简单的 Redis Session 中间件
支持类似如下的使用方法(最好包含基本的单元测试):
// 初始化中间件
app.use(mySession({
connection: {host: '127.0.0.1', port: 6379}, // Redis连接信息
maxAge: 3600, // session的有效期
sessionId: 'my.sid', // session ID 的cookie名称
}));
// 使用时直接在 req.session 上添加或删除属性即可
使用 net 模块实现一个简单的 HTTP 客户端
支持类似如下的使用方法(最好包含基本的单元测试):
request({
method: 'POST', // 请求方法
url: 'http://xxx.com', // 请求地址
qs: {a: 123, b: 456}, // query查询参数
form: {c: 111, d: 'zxxxxx'}, // post body参数
headers: {
'user-agent': 'SuperID/Node.js', // 请求头
},
})
.then(ret => {
// ret.headers 表示响应头
// ret.statusCode 表示响应代码
// ret.body 表示响应内容(Buffer)
})
.catch(err => console.log(err))
实现一个简单的测试单元框架
支持类似如下的使用方法(最好包含基本的单元测试):
// 同步功能测试
test('测试1', function () {
assert.euqal(1 + 1, 2);
});
// 异步功能测试
test('测试2', function (done) {
setTimeout(function () {
assert.equal(2 + 2, 4);
done();
}, 100);
});
执行测试后返回类似如下的结果:
测试1 - 耗时100ms - 失败
测试2 - 耗时125ms - 通过
参与方式
本帖回复答案,@leizongmin 会给出指点
老雷简介
老雷(雷宗民),一登高级后端工程师,《Node.js实战(双色)》和《Node.js实战(第2版)》作者之一,xss模块作者,5年Node.js使用经验,GitHub: leizongmin
全文完
欢迎关注我的公众号【node全栈】
联系我,更多交流