npm内置模块

npm

npm内置模块

1.http

使用方法:

1.导入模块 const http = require(“http”);

2.创建服务器对象 const server = http.createServer((request,response) => { })

request 是存储发送请求的所有信息的对象

response 是服务器响应返回的所有信息的对象

3.开启服务器 server.listen(“端口号”,ip地址,callback);

1.地址可以省略 端口号不行 默认地址是127.0.0.1

2.需要设置请求头 避免出现中文乱码的情况

3.修改了js代码之后,一定要重启服务器

// 导入模块
const http = require("http");
// 创建http服务
const server = http.createServer((request,response) => {
    console.log(1111);

    console.log(request);

    console.log(request.url);

    console.log(request.method);

    // 1.设置响应头服务器为了告诉浏览器 我返回给你的数据用utf-8来解析
    response.setHeader("content-type","text/html;charset=utf-8");

    // response.end("how are you?");
    response.end("刚好遇见你");
})
// 开启服务器
// server.listen("80","127.0.0.1",() => {
//     console.log("start");
// })

// 地址可以省略 但是端口号不行 地址不填 默认地址是127.0.0.1
server.listen("80",() => {
    console.log("start");
})

2.fs

fs.readFile()

// 导入模块 require("模块名") 模块名是nodejs内部规定好的 不能动
// 左边保存的变量可以修改 但是通常情况下和模块名保持一致
const fs = require('fs');
// 参数1:需要被读取文件的路径
// 参数2:可选参数 我们这里给的是编码格式
// 参数3:回调函数 里面有两个参数 err表示读取失败是返回的信息 data表示读取成功时返回的信息
// fs.readFile("./20200721-node/05-赋得古原草送别.txt","utf-8",(err,data) => {
//     // console.log(err);
//     // console.log(data);
//     if(!err){
//         console.log(data);
//     } else {
//         console.log("文件获取失败");
//     }
// })
// console.log("底部的代码"); //证明异步
// nodejs里面 如果方法以Sync就说明是同步的方法
var novel = fs.readFileSync("./20200721-node/05-text.txt","utf-8");
console.log(novel);
console.log("底部的代码"); //证明同步

fs.writeFile()

// 导入fs模块
const fs = require("fs");
// 参数1:要写入的路径
// 参数2:写入的数据
// 参数3:回调函数 有一个参数是 err 表示写入状态 成功/失败
fs.writeFile("./20200721-node/07-被写入.txt","海客谈瀛洲,烟涛微茫信难求;越人语天姥,云霞明灭或可睹。.....",err => {console.log(err);});
console.log("底部的代码"); // 证明异步

3.url

get请求的数据 url.parse().query //url模块

post请求的数据 querystring.parse() //querystring模块

​ post请求接收数据 request.on(“data” , data => {})

​ 数据接受完毕就触发 request.on(“end”,() => {})

//导入http模块
const http = require("http");
const url = require("url");
const querystring = require("querystring");

//创建服务器对象
const server = http.createServer((request,response) => {
    // console.log(request.method); //get //获取请求类型
    // response.end(request.method);

    // // console.log(request.url);    ///?name=%E7%8E%8B%E9%BA%BB%E5%AD%90&skill=%E6%89%93%E9%85%B1%E6%B2%B9  //获取路径
    // // console.log(url.parse(request.url,true)); //Url {}       //获取url对象

    // const getdata = url.parse(request.url,true).query; 
    // console.log(getdata);   //[Object: null prototype] { name: '王麻子', skill: '打酱油' }  //获取url对象的query
    // console.log(getdata.name);  //王麻子
    // console.log(getdata.skill); //打酱油
    // console.log(getdata.age);   //18

    const reqMed = request.method;
    if(reqMed === "GET"){
        const reqUrl = request.url;
        //引入ur1模块调用parse来 解析url
        const getdata = url.parse(request.url,true).query;
        console.log(getdata);
        response.end(getdata.name);
    }else if(reqMed === "POST"){
        // const reqUrl = Request.url;
        // //使用获取get请求数据的方法post请求的数据 是获取不到的 因为它压根没进url
        // const getdata = url.parse(request.url,true).query;
        // console.log(getdata);

        // post请求传递的数据可能比较大 不会一次性传递完毕 分段传输 所以我们要使用字符串来接受数据
        let postStr = "";
        // data事件 表示正在传输数据
        request.on("data",data => {
            // console.log(data);
            // console.log(data.toString());
            // console.log(decodeURl(data.toString()));
            postStr += data;
        })
        //end事件表示数据传输完毕 没有参数
        request.on("end",() => {
            // post请求传递的数据不是url 只是单纯的key=value&key1=value1这种类型的字符串,我们可以直接使用querystring.parse来解析
            const postData = querystring.parse(postStr);
            console.log(postData);
            response.end(postData.article);
        })
    }
})

//开启服务器
server.listen('8848',() => {
    console.log("服务器已开启");
})

4.path

path.join() 拼接路径

__dirname 当前文件所在文件夹的绝对路径

__filname 当前文件的绝对路径

//导入模块
const path = require("path");
const fs = require("fs");

const pathName = path.join("name","info","assets","index.html");

console.log(pathName);

//在使用路径的地方 使用绝对路径
const txtPath = path.join(__dirname,"novels","./20200722/05-test.txt");
console.log(txtPath);

//读取文件
fs.readFile(txtPath,"utf-8",(err,data) => {
    if(!err){
        console.log(data);
    }else{
        console.log(err);
    }
})

第三方模块

1.用法

1.npm init -y 自动配置需要的信息

npm init 手动配置

npm init 初始化设置过后 当前的终端目录下 多了一个package.json

2.要是用某个第三方模块 npm i 模块名

node-modules 是所有当前模块需要的依赖包

package-lock.json 是存储当前项目所有的包的信息 包括下载地址 版本号

安装成功 +模块名 added

3.拷贝示例代码

//npm init -y
//npm i server

// 将服务器包括在您的文件中
const server = require('server');
const { get, post } = server.router;
 
// 处理对URL“/”(http://localhost:3000/)的请求
server([
  get('/', ctx => 'Hello world!')
]);

例如mysql配置数据库信息 操作数据库

//npm init -y
//npm i mysql

//导入mysql模块
var mysql = require('mysql');

//创建数据库链接对象 配置相关的信息
var connection = mysql.createConnection({
  host: 'localhost',   //主机名
  user: 'root',        //用户名
  password: 'root',      //密码
  database: 'test'        //数据库名
});

//创建数据库链接
connection.connect();

// 操作数据库
// 1.查询数据库数据 select * from students
connection.query('select * from students', function (error, results, fields) {
  if (error) throw error;
  console.log(results);
});

// 2.插入数据 insert into 数据表名(属性名) value(属性值)
// connection.query('insert into students(name,age,score) value("张三",19,59)', function (error, results, fields) {
//   if (error) throw error;
//   console.log(results);
// });

// 3.1删除 根据某一个id删除数据
// connection.query('delete from students where id=8', function (error, results, fields) {
//   if (error) throw error;
//   console.log(results);
// });
//3.2删除 根据id删除多个数据
// connection.query('delete from students where id in(9,10,11)', function (error, results, fields) {
//   if (error) throw error;
//   console.log(results);
// });

//4.修改数据 英文逗号隔开 修改的属性
// connection.query('update students set name="张贵富",score=59,age=86 where id=12', function (error, results, fields) {
//   if (error) throw error;
//   console.log(results);
// });

//关闭数据库链接
connection.end();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
npm install require是使用npm包管理器安装require模块的命令。require是Node.js中的一个内置模块,用于加载其他模块或文件。 当我们在Node.js中使用require时,可以通过以下步骤来安装和使用它: 1. 确保已经安装了Node.jsnpm。可以在终端或命令提示符中运行以下命令来检查它们的版本: ``` node -v npm -v ``` 2. 在项目的根目录下打开终端或命令提示符,并运行以下命令来初始化项目: ``` npm init ``` 3. 在项目根目录下创建一个JavaScript文件,例如index.js,并在其中使用require来加载其他模块或文件。例如,我们可以加载一个名为"express"的模块: ```javascript const express = require('express'); ``` 4. 运行以下命令来安装所需的模块(例如"express"): ``` npm install express ``` 这将会在项目的根目录下创建一个名为"node_modules"的文件夹,并将所需的模块下载到其中。 5. 在JavaScript文件中使用require加载模块后,就可以使用该模块提供的功能了。例如,我们可以使用express模块创建一个简单的Web服务器: ```javascript const express = require('express'); const app = express(); app.get('/', (req, res) => { res.send('Hello, World!'); }); app.listen(3000, () => { console.log('Server is running on port 3000'); }); ``` 运行以下命令来启动服务器: ``` node index.js ``` 然后,可以在浏览器中访问http://localhost:3000来查看结果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值