前端面试基础合集——nodejs

74.node 开发 中你用过哪些常用的node模块,分别是哪些?

var httpModule=require(‘http’);
“http”:HTTP是Node.js提供的原生模块,该模块中有createServer、request和get等多个方法和属性

文件处理
File System模块介绍
文件IO是由标准POSIX函数封装而成的,需要使用require(‘fs’)访问这个模块。所有方法都提供了同步和异步2种方式
fs.rename(path1,path2,[callback])异步调用函数对应fs.renameSync(path1,path2)同步调用函数,作用功能都是相同的 ,但是接口是一个同步接口,因此调用方式有所区别。

路由处理
根据不同客户端的请求资源路径,来分配服务器处理逻辑。
URL模块作用:处理客户端请求过来的URL 代码步骤:导入 URL 核心模块 导入 HTTP 核心模块 监听客户端的请求(在这中间处理客户端请求过来的URL) 处理客户端的请求 开启服务器
特定规则
可以根据用户请求的url,依据特定的规则得到执行函数。
GET和POST
Node.js中HTTP客户端发送的GET请求参数都存储在request对象中的url属性中。

Query Strings模块
作用:处理客户端通过get/post请求传递过来的参数
使用关键点:

需要导入 ‘querystring’ 这个核心模块
get请求时 querystring 一般是配合 url 核心模块一起使用的
get/post请求最终都需要调用 querystring.parse方法,将请求传递过来的键值对字符串转成js对象,方便操作。
注意:
get/post的请求方式是不一样的,客户端传递过来时,参数放在的地方是不一样的,所以服务器端处理方式也不太一样。

File System模块
前提:以后的所有静态资源(html、css、js、图片等)都是放在服务端的,如果浏览器需要这些html、css、js、图片等资源,则需要先将其读取到node.exe的内容中,然后再返回给浏览器。
作用:
在服务端来操作文件,可能是需要将浏览器上传的图片保存到服务器,也可能是需要将服务器的资源读取之后返回给浏览器。
代码步骤:
导入 fs 核心模块
使用相应的方法来写入文件、读取文件等操作
注意点:
目录 fs它是不会自动帮我们创建的需要我们自己手工创建文件如果不存在,调用 writeFile 与 appendFile 方法会自动帮我们创建。

Path模块
作用:操作文件的路径,为文件操作服务。
常用的几个函数:
path.join(第一个路径,第二个路径) : 拼接路径
Global模块
作用:
全局共享的,不需要导入模块即可以使用
常用的属性:
__dirname : 文件所在的文件夹路径
__filename : 文件所在的路径
require() : 导入需要的模块
module : 自定义模块时用到
exports : 自定义模块时用到

75. node 开发中 如何实现 模块化开发 (什么是模块化开发 怎么实现模块化开发) require exports defined

模块定义 define
模块暴露 exports
模块引入 require

模块化就是讲js文件按照功能分离,根据需求引入不同的文件中。源于服务器端。.buffer string css js from json
模块化开发就是把复杂的业务逻辑分解成细小的单元模块,功能模块,能实现代码的复用,代码之间的组织关系非常明了,依赖关系非常清晰。
实现模块化开发:commonJs是nodeJs+webpack实现模块开发的规范

76.node 开发 返回的数据的文档类型格式有哪些 5条 (content-type)

buffer string css js from json

77.npm 安装插件 package 如何 安装开发依赖 项目依赖 全局依赖 underscore

–global -g 全局依赖
–save-dev -D 开发依赖 devDependencies 辅助开发
–save -S 项目依赖 dependencies 项目始终需要
yarn add

78.node 文件读取 这个 模块 读文件 写文件 创建文件 删除文件 怎么实现

fs模块 Node 文件系统模块 file system
// async 异步 一定有callback
// sync 同步

得到文件与目录的信息:stat
fs.stat("./event.js",(err,stats)=>{})

创建一个目录:mkdir
fs.mkdir(“logs”,(err)=>{})

创建文件并写入内容:writeFile, 追加内容appendFile
fs.writeFile("./logs/hello.log",“hello world wuhan1809”,‘utf8’,(err)=>{})
fs.appendFile("./logs/demo.txt",“hello world node vue react\n”,‘utf8’,(err)=>{})

读取文件的内容:readFile
fs.readFile(“logs/hello.log”,“utf-8”,(err,data)=>{})

列出目录的东西:readdir
fs.readdir("…/day1",“utf8”,(err,files)=>{})
files是一个数组

重命名目录或文件:rename 旧,新
fs.rename(“logs/demo.txt”,“logs/demo.log”,(err)=>{})

删除目录与文件:rmdir,unlink // 删除 目录之前 要把当前目录所有的文件删除

var files = fs.readdirSync("logs");
files.forEach((item,index)=>{
    console.log(item);
    fs.unlink(`logs/${item}`,err=>{
        if(err) throw err;
        console.log('删除文件成功 ---'+item);
    })
})
// 删除目录  
fs.rmdir("logs",(err)=>{
    if(err) throw err;
    console.log('删除目录成功 ---');
})

79.mongodb 和 mysql 数据库的区别

80.分别写出mongodb 和 mysql 数据库的增删改查 数据表 为 user

mongodb:
db.user.find({})
db.user.insert({})
db.user.update({})
db.user.remove({})

mysql:
select * from user
insert into user ()  values ()
update user set ... where ...
delete from user where ..

81.node 什么是 socket ,它有什么作用 ?

socket是客户端与服务端的通信。作用:实现网络通信

82. 什么是长连接 , 你知道的有哪些 实现 长连接的 方式 sse socket

什么是长连接、短连接?
在HTTP/1.0中默认使用短连接。也就是说,客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。当客户端浏览器访问的某个HTML或其他类型的Web页中包含有其他的Web资源(如JavaScript文件、图像文件、CSS文件等),每遇到这样一个Web资源,浏览器就会重新建立一个HTTP会话。

而从HTTP/1.1起,默认使用长连接,用以保持连接特性。使用长连接的HTTP协议,会在响应头加入这行代码:

Connection:keep-alive
在使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,客户端再次访问这个服务器时,会继续使用这一条已经建立的连接。Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。实现长连接需要客户端和服务端都支持长连接。

HTTP协议的长连接和短连接,实质上是TCP协议的长连接和短连接。
长连接实现方式为 see socket

83.说一下加密方式有哪些 谈一下基于node 加密模块

常用的加密方式有md5、sha1、base64、Hmac、AES、Diffie-Hellman等,基于node的加密模块是crypto模块 ,详细参考
https://blog.csdn.net/qq_42549337/article/details/80814038

84.node + express ejs 后端模板引擎 有哪些特点

1,缓存功能,能够缓存已经解析好的html模版;
2,可以使用express视图系统;
3,可以自定义标签,
比如 ‘<%’ 可以使用 ‘{{’ 替代, ‘%>’ 用 ‘}}’ 代替;
4,编译和渲染速度快;
5,支持浏览器端和服务器端;
6,自定义标记分隔符;

模版标签很简单。 编译速度快。完全支持express系统。

85.express req.query req.body req.params 分别是什么意思?

express. req.query. ?拼接的参数——查询参数。 req.body。 提交到后台的参数 Req.params. 冒号拼接的参数。 也是路由参数

Url.parse.search. 有问号
Url.parse.query. 无问号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值