app.listen(‘8989’)

cmd运行js;

打开html页面:

在这里插入图片描述

在这里插入图片描述

读取静态资源–app.post()

JS代码:

const express=require(‘express’);

const app=express();

// post请求需要依赖专门的模块

// 第一步:npm install body-parser -S;

// 第二步:在页面中引入

// 第三步:在post请求的第二个参数加上刚刚解析body-parser得到的参数。

var bodyParser = require(‘body-parser’)

var urlencodedParser = bodyParser.urlencoded({ extended: false })

// 静态资源读取

// /默认 寻找的路径需要是index.html

app.use(‘/’,express.static(‘./www/form’));

// app.post()可以处理post请求

// post请求参数处理比较麻烦,需要依赖一个模块 body-parser

// 具体用法可以参照手册

// post请求的第二个参数需要通过解析body-parser模块得到

app.post(‘/submit’,urlencodedParser,(req,res)=>{

// 获取post请求的参数 req.body

res.send(req.body);

})

app.listen(‘8989’);

按步骤进行即可

两者整合:

const express=require(‘express’);

const app=express();

var bodyParser = require(‘body-parser’)

var urlencodedParser = bodyParser.urlencoded({ extended: false })

app.use(‘/’,express.static(‘./www/form’));

app.post(‘/submit’,urlencodedParser,(req,res)=>{

res.send(req.body);

})

app.get(‘/submit’,(req,res)=>{

console.log(req.query);

res.send(您输入的用户名是${req.query.user});

})

app.listen(‘8989’);

静态资源读取—ajax

先在目录下再创建一个public文件夹

public一般放置的是css 、js文件;

js代码:

const express=require(‘express’);

const app=express();

// 引入处理post参数的模块

var bodyParser = require(‘body-parser’)

var urlencodedParser = bodyParser.urlencoded({ extended: false })

app.use(‘/’,express.static(‘./www/form’));

//把静态资源呈递

app.use(‘/public’,express.static(‘./public’));

app.post(‘/submit’,urlencodedParser,(req,res)=>{

// 获取post请求的参数 req.body

res.send(req.body);

})

app.get(‘/submit’,(req,res)=>{

// get请求的参数在url内部 req.query获取get请求参数

console.log(req.query);

res.send(${req.query.user});

})

app.listen(‘8989’);

index.html:

Document

这是登录页面





按钮

已有账号请注册

ajax:不需要跳转

在这里插入图片描述

打开其他页面:

提交get请求,跳转:

在这里插入图片描述

post请求:

在这里插入图片描述

3、Mongodb数据库

===============================================================================

自己写的相关介绍链接:https://blog.csdn.net/weixin_53037175/article/details/111829602

连接数据库,和后台联系起来:

const express=require(‘express’);

const app=express();

// 引入数据库

var MongoClient = require(‘mongodb’).MongoClient;

// 数据库地址

var url = “mongodb://localhost:27017”;

app.use(‘/zsh’,(req,res)=>{

// 插入数据库

// 连接数据库 把数据库和后台联系起来

MongoClient.connect(url, function(err, db) {

if (err) throw err;

var dbo = db.db(“student”);

dbo.collection(“stu1”). find({}).toArray(function(err, result) { // 返回集合中所有数据

if (err) throw err;

console.log(result);

db.close();

res.send(result);

});

});

})

app.use(‘/’,(req,res)=>{

MongoClient.connect(url, function(err,db) {

if (err) throw err;

// 选择数据库

var dbo = db.db(“student”);

var myobj = { name: “菜鸟教程”, url: “www.runoob” };

// 插入数据操作

dbo.collection(“stu1”).insertOne(myobj, function(err, res1) {

if (err) throw err;

db.close();

res.send(‘数据插入成功了’);

});

});

})

app.listen(‘8989’);

4、数据库增删改查操作

==============================================================================

首先是静态资源HTML

index.html

Document

请注册

//addata,提交数据到指定的路径地址,这个根据js的要求修改

封装好的js文件,一般是放在自己创建文件夹里(比如model):

dao.js

//数据库操作

// 先下载好数据库包再引入,这个也可以在php中操作数据库

const MongoClient=require(‘mongodb’).MongoClient;

// 数据库地址,27017是默认是数据库端口号

const url=“mongodb://localhost:27017”;

// 把数据库连接的操作,封装起来。

function _connect(callback){

// 连接上数据库

//连接数据库是异步操作,不知道什么时候连接成功了。用到回调函数的概念

MongoClient.connect(url, function(err, db) {

// 连接数据库成功

if (err) throw err;

// 说明连接数据库成功了 db代表连接成功以后返回的数据

callback(db);

});

}

//插入数据操作:

// module.exports导出数据

module.exports insert=function(databse,type,myobj,callback){

_connect(function(db){

// db连接成功的数据

// db.db(‘操作的数据库’)

var db=db.db(database);

//判断myobj类型,转换为数组作为语句集合插入数据库

if(myobj instanceof Array){

myobj=myobj

}else{

myobj=[myobj]

}

// 一条数据是对象 insertOne 多条数据是数组 用insertmMany

db.collerction(type).insertMany(myobj,function(err,r){

if err throw err;

bd.close();

// r得到的是成功插入数据的信息

callback®;

})

})

}

//查看操作:

// 查询封装的时候,考虑是否需要分页是否需要排序

// 需要书写函数参数的默认值,因为用户有可能不会书写

module.exports.find=function(databse,type,callback,myobj={},mysort={},myskip=0,mylimit=0){

_connect(function(db){

// 查询数据

var dbo = db.db(database);

// sort排序

// skip跳过多少条数据

// limit()限制取数据的数量

dbo.collection(type).find(myobj).sort(mysort).skip(myskip).limit(mylimit).toArray(function(err, result) { // 返回集合中所有数据

if (err) throw err;

console.log(result);

db.close();

callback(result);

})

})

}

//更新操作:

module.exports.update=function(databse,type,myobj,updateObj,callback){

_connect(function(db){

var dbo = db.db(dbname);

var updateStr = {$set: {updateObj}};

// updateOne(查询条件(可以是id也可以是语句),更改后数据)

dbo.collection(col).updateOne(myobj, updateStr, function(err, res) {

if (err) throw err;

console.log(“文档更新成功”);

db.close();

callback(res)

});

})

}

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
img

最后

CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

给大家分享一些关于HTML的面试题。


一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

化!**

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-vlgCMFuI-1712239998636)]

最后

CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

给大家分享一些关于HTML的面试题。

[外链图片转存中…(img-6SrC4W5k-1712239998636)]
[外链图片转存中…(img-s5BNxNTq-1712239998637)]

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐