【Node.js面试题】听说会作这几道题的人都能妥妥月入15K以上,不知道真假

听说会作这几道题的人都能妥妥月入15K以上,不知道真假


实现一个简单 MySQL ORM 模块


支持相似以下的使用方法(最好包含基本的单元测试):node


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 中间件


支持相似以下的使用方法(最好包含基本的单元测试):mysql


// 初始化中间件
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 客户端


支持相似以下的使用方法(最好包含基本的单元测试):sql


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);
});


执行测试后返回相似以下的结果:cookie


测试1 - 耗时100ms - 失败
测试2 - 耗时125ms - 经过


参与方式


cnodejs帖回复答案,由@leizongmin  大神给出指点session


老雷简介


老雷(雷宗民),一登高级后端工程师,《Node.js实战(双色)》和《Node.js实战(第2版)》做者之一,xss模块做者,5年Node.js使用经验,GitHub: leizongminapp


全文完框架

欢迎关注个人公众号【node全栈】异步


node全栈.png



若是想参与评论答题,请点击原文连接,进入国内最专业的cnode论坛xss

https://cnodejs.org/topic/56edfa7cb705742136388fb4

相关文章
相关标签/搜索