node升阶段面试50

升阶段面试题

  1. nodejs的是什么(三点核心)?

    1. Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
    2. Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。
    3. Node 是一个让 JavaScript 运行在服务端的开发平台。
  2. 搭建一个简单服务器的步骤?

    1. 引入 http模块 var http=require('http')
    2. 创建服务 var server=http.createServer(function(req,res){})
    3. 监听端口 server.listen(3000)
  3. fs模块如何同步读取文件?以及如何处理同步阻塞问题?(读取文件路径’./a.txt’)

    try{
     data=fs.readFileSync('./a.txt','utf-8')
       }catch(e){
         throw e;
       }
    
  4. fs如何异步读取文件?(路径./a.txt)

    fs.readFile('./a.txt','utf-8',function(err,data){})

  5. url模块如何获取 str='http://www.baidu.com:3000/a/b?c=100中每一部分(协议,域名,端口,路径,参数)?

      var url=require('url');
      var str='http://www.baidu.com:3000/a/b?c=100'
      var obj=url.parse(str,true);
      obj.protocal    协议
      obj.hostname  域名
      obj.port       端口
      obj.pathname  路径
      obj.query     参数
    
  6. 同步和异步的区别?

    • 同步:执行同步操作时,会从上往下依次执行。代码一但报错,就会阻塞,解决同步阻塞 可以用try{ } catch(e){ }

    • 异步: 执行到异步操作时,会将异步读取任务放置任务队列,等所有同步执行完毕,任务队列中的回调函数会依次执行。

    • js中常见的异步: 定时器,ajax,事件绑定(addEventlistener)

  7. npm 是什么?下载包时可以用哪个工具替代?

    npm 是包管理工具,下载包时可以用cnpm代理、也可以yarn代替(google的产品)。

    例如下载jquery@3.0.0,
    npm ----> npm install jquery@3.0.0
    cnpm----> cnpm install jquery@3.0.0
    yarn ----> yarn add jquery@3.0.0

  8. express创建项目流程?

    express -e projectName
    cd projectName
    npm install   /   cnpm install   /   yarn install 
    npm start   /  yarn start
    
  9. express项目目录组成,以及每部分的含义?

    bin 项目启动文件(端口号可以在本文件中修改)
    node_modules 项目依赖目录
    routes 路由
    views 视图文件 (ejs文件)
    public 静态资源文件 (img、js、css、font)
    app.js 核心主文件 (定义服务器)
    package.json 项目信息说明

  10. get与post区别?

  • get: 参数追加在url后面、明文可见、不安全、长度有限制(IE 2k) 、请求速度快、一般用于查询。

  • post:参数放在请求头的body,大小没有限制。安全性高。请求速度不get慢。一般用户:提交、添加。

  1. 终端操作mongodb数据库,查看数据库?

    show dbs

  2. 终端操作mongodb数据库,查看集合?

show collections
  1. 终端操作mongodb数据库,查看当前数据库下的one集合下所有文档?

    db.one.find()

  2. 终端操作mongodb数据库,创建并切换至数据库blog?

    use blog

  3. 终端操作mongodb数据库,当前数据库下创建one集合?

    db.createCollection(‘one’)

  4. 终端操作mongodb数据库,one集合中插入文档{name:‘tom’}?

    db.one.insert({name:‘tom’})

  5. 终端操作mongodb数据库,查询one集合下,所有age大于20的文档?
    db.one.find({age:{$gt:20}})

  6. 终端操作mongodb数据库,修改one集合下,name为‘tom’的所有文档,age修改为18?

    db.one.update({name:‘tom’},{$set:{age:18}},{multi:true})

    备注:必须有$set , 必须有multi

  7. 终端操作mongodb数据库,删除one集合下name值为‘tom’所有文档?

    db.one.remove({name:‘tom’})

  8. 在express项目中,mongoose如何连接本地27017下的blog数据库?

    mongoose.connet(‘mongodb://localhost:27017/blog’,function(){ })

  9. mongoose插件如何查询数据库,已知集合模型为Txt?
    Txt.find()

  10. mongoose插件如何写入数据库,已知集合模型为Txt?
    Txt.create()

  11. mongoose 插件如何删除_id值为12345的文档,已知集合模型为Txt?
    Txt.remove({_id:12345})

  12. res重定向到’/’?
    res.redirect(’/’)

  13. res如何返回json?
    res.json(()

  14. 原生ajax的使用步骤?


  1. 检测系统中node版本号的指令是?node -v

  2. 如何退出node执行环境(REPL环境)?ctrl+c

  3. 为什么需要后台技术? 自动发布网站,无需重复排版。 实现登陆注册,信息的保存等。 用户管理,产品管理等都需要健壮的后台技术
    req,res分别代表什么? req:全称request请求对象 res:全称 response响应对象

  4. 全局安装express-generater指令是? cnpm install express-generator -g 前面用npm cnpm 都对

  5. express创建项目test指令? express test

  6. 浏览器里如何检测打开了mongodb仓库? 地址栏输入:http://127.0.0.1:27017/ 看到英文提示就对了。

  7. 整个url地址包括什么? 答:协议、端口、域名、参数就对了,下面是辅助理解。 假设这是一个url地址http://localhost:8080/a/b/c?a=1&b=2#abc,里面包含的部分: protocol: ‘http:’,//协议 host: ‘localhost:8080’, port: ‘8080’,//端口 hostname: ‘localhost’,域名

  8. 跨域的解释:跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制。

  9. 什么是同源策略?所谓同源是指,域名,协议,端口均相同,

  10. 什么是模板引擎?

将html和数据分类开。这样渲染页面就不需要通过字符串拼接的方法,而是直接用ejs模板引擎,将服务器端传过来的数据在页面直接显示出来,不会那样的麻烦了

  1. 说出增删改查的常用单词? create find delete update

  2. 前端get方式如何向后台传递参数?在地址栏后面挂载参数,多个参数以&分隔,例如 abc?a=1&b=2;

  3. 前端post方式如何向后台传递参数?不是挂载在地址栏后面,而是放在请求体(主体包)body里。

  4. 后台get方式如何接收参数? express框架是req.query。

  5. 后台post方式如何接收参数? express框架是req.body,

  6. 后台返回到前端的数据格式是什么?字串或者json对象

  7. 前后台通过什么建立联系? 路由

  8. 保存到本地存储和保存到后台仓库的区别? 保存到本地,只是本机能查看和修改数据 ,而保存到服务端,所有客户机都可以访问。

  9. 什么是cookies?保存数据的一种方式,保存在客户端,是字串,最大3k.

  10. 什么是session?保存数据的一种方式,保存在服务端,是对象。

  11. cookies session 区别:cookies 保存在客户端,是字串,文件较小,最大3k,安全性差,session保存在服务端,是对象,更安全。

  12. 如何设置cookie,实现30天免登录 ? req.cookie( 参一,参二 ,{maxAge:100060602430})

  13. 注册的流程?
    首先查询数据库,是否存在该用户,如果存在,返回注册失败,如果不存在,写入用户注册信息,注册成功。

  14. 登录的流程?
    首先查询数据库,是否存在该用户,若果不存在,登录失败。
    如果存在,则进行密码校验。密码一致,登录成功。密码不一致,登录失败。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

star@星空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值