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

【Node.js面试题】据说会做这几道题的人都能妥妥月入15K以上,不知道真假_第1张图片

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


实现一个简单 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 - 通过


参与方式


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


老雷简介


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


全文完

欢迎关注我的公众号【node全栈】


【Node.js面试题】据说会做这几道题的人都能妥妥月入15K以上,不知道真假_第2张图片



如果想参与评论答题,请点击原文链接,进入国内最专业的cnode论坛

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

你可能感兴趣的:(【Node.js面试题】据说会做这几道题的人都能妥妥月入15K以上,不知道真假)