赛码网前端笔试本地环境搭建

最近事情是真的真的真的多,找工作、做毕设,再加上拖延症晚期,很久没更博客了,最近的笔试基本都是在赛码网做的,然后写编程题时就遇到了其JavaScript V8引擎实现的奇葩read_line()print()方法,我不否认这个确实不难用,但是这导致在本地环境根本无法直接调试代码,所以为了达成优雅的本地调试后直接复制到答题框就出现了今天除草的理由,本地搭建赛码网前端笔试环境

print方法的实现

这个没有什么难度,只是把console.log改个名字的事情,一行代码就可以解决。

1
var print = console.log

read_line方法的实现

众所周知,Node.js是一个异步语言,所以readline也是一个异步操作,根据Node.js中文文档介绍,readline是这样操作的:

1
2
3
4
5
6
7
8
9
10
11
12
13
const readline = require('readline');

const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});

rl.question('你认为 Node.js 中文网怎么样?', (answer) => {
// 对答案进行处理
console.log(`多谢你的反馈:${answer}`);

rl.close();
});

又或者是这样操作的:

1
2
3
rl.on('line', (input) => {
console.log(`接收到:${input}`);
});

没错,这样如果用来写一个cli工具相当的好用,可是现在的需求不同,我们需要的是复制到答题框可以直接运行的代码,现在神器就该出现了。
Duang~! readline-sync
绝望的时候还是GitHub靠得住,只需两步即可实现read_line方法:

  1. 安装readline-syncNode.js的环境我就不多介绍了想必大佬们都清楚得很。

    1
    npm install readline-sync
  2. 写之前复制下面的代码到前面

    1
    2
    3
    var __readline = require('readline-sync')
    __readline.setDefaultOptions({prompt: ''})
    var read_line = __readline.prompt

    大功告成,尽情的去笔试吧~


本文链接:赛码网前端笔试本地环境搭建
版权声明:本文章采用CC BY-NC-SA 3.0 CN许可协议进行许可。转载请注明出处!