node和mongoDB
2021/10/31 19:10:47
本文主要是介绍node和mongoDB,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
js运行在服务器
node -v 看版本
let http = require("http"); let server = http.createServer(function(req, res){ res.end("hello"); }); server.listen(3000);
node js文件运行该文件,作为服务器占用3000端口
end只执行一次,里面可以写html标签
write(String) 可以执行多次,他后面必须有end方法,也可以写标签
读取模块
let http = require("http"); var fs=require("fs"); let server = http.createServer(function(req, res){ res.setHeader("Content-Type", "text/html;charset=UTF8"); fs.readFile("./cece.txt",function(err, data){ res.end(data); }) }); server.listen(3000);
if (req.url="/?/?"){ 顶层路由,根据请求的url路径来指定返回的内容 res.end(data); }
顶层路由的问题,请求的路径和实际物理路径不匹配,导致每一个文件都要单独配置
nodejs没window所以有作用域隔离
通过
01.js
let two=require("./02.js"); console.log(two.number)
02.js
let a=100; exports.number=a;
来访问
构造函数
01.js
function Person(name,age){ this.name = name; this.age = age; } module.exports = Person;
02.js
let person=require("./02.js"); let xiaomign=new person("xiaoming",12); console.log(xiaomign.name)
require引入文件,不加./引入的node_modules中的文件
用法
npm init 初始化给自己做一个身份证
以后只用在package.json目录下npm install就可以检索内部依赖进行安装
当然,安装要加--save
淘宝镜像
npm install -g cnpm --registry=https://registry.npmmirror.com //cnmp下载
express
npm install --save express
let express = require("express"); let app = new express(); app.get('/', function(req, res){ res.send("Hello, world!"); }); app.listen(3000)
原生路径不允许挂参数
冒号就是通配,可以通过params得到参数
匹配成功路径默认不会走其他的中间件,用next()方法可以方法可以放行。send同等于end,直接返回
express的jsonp封裝
res.send(`jsp({name:"xaioming",age:12})`) 原版,模板字符串
靜态化
app.use("pub",express.static("public"));
將public文件当做根路径,请求地址localhost:300/pub/?
?是public文件夹里面的文件,第一个pub参数可以不写
最主要的是请求文件,比如图片等不会再当成路径去解析
restful
非restful通过url地址来区分,restful风格路由通过请求方式区分
node没静态化的话,统一使用绝对路径
let fs = require("fs"); let path = require("path"); fs.readFile(path.resolve(__dirname,"./other/cece.txt"),function(err,data){ console.log(data.toString()); });
用path模块合并路径
MongoDB
非关系型数据库(不限制数据类型)
数据库,集合,文档
show dbs //查看所有的数据库
show collections //查看所有的集合
use ?? 创建并使用数据库
db.集合.insert(数据) //创建集合并插入数据
db.student.find(); //查找所有student集合的数据
db.student.find({age:{$gt:10}}); //查找相关数据
db.student.find($or:[{},{}])
db.dropDatabase();
cmd两个窗口,一个mopngoed,另一个mongo,然后use库,最后调函数删除,idea删除不了
mongoose
以面向对象的方式操作数据库
let mongoose = require("mongoose"); mongoose.connect("mongodb://localhost/students"); 最后一个数据库名称,可以不存在 var Schema = mongoose.Schema; var stuSchema = new Schema({ 创建schema类型的约束 name:String, age:Number, address:{ type:String, default:"this" } }); var stuModel = mongoose.model("students",stuSchema); 传入集合名称和schema约束 stuModel.create({ name:"xiaoming", age:12, address:"shandong" },function (err) { if (err){ console.error("falses") } })
查询
stuModel.find({name:"xiaoming"},function (err,docs) { //返回数组 alert(docs[0].name); }); stuModel.findone({name:"xiaoming"},function (err,doc){ //返回对象 alert(doc.name); })
修改
stuModel.updateOne({name:"xiaoming"},{$set:{age:20}}, function (err,doc) { }); stuModel.updateMany({name:"xiaoming"} ,{$set:{name:"xiaozhang"}},function (err,docs){ console.log(docs[0]) })
删除
stuModel.deleteOne({name:"xiaoming"},function (err,doc) { }); stuModel.deleteMany({name:"xiaozhang"},function (err,docs){ })
Echart
基于js的图标库
这篇关于node和mongoDB的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15SendGrid 的 Go 客户端库怎么实现同时向多个邮箱发送邮件?-icode9专业技术文章分享
- 2024-11-15SendGrid 的 Go 客户端库怎么设置header 和 标签tag 呢?-icode9专业技术文章分享
- 2024-11-12Cargo deny安装指路
- 2024-11-02MongoDB项目实战:从入门到初级应用
- 2024-11-01随时随地一键转录,Google Cloud 新模型 Chirp 2 让语音识别更上一层楼
- 2024-10-25Google Cloud动手实验详解:如何在Cloud Run上开发无服务器应用
- 2024-10-24AI ?先驱齐聚 BAAI 2024,发布大规模语言、多模态、具身、生物计算以及 FlagOpen 2.0 等 AI 模型创新成果。
- 2024-10-20goland工具下,如修改一个项目的标准库SDK的版本-icode9专业技术文章分享
- 2024-10-17Go学习:初学者的简单教程
- 2024-10-17Go学习:新手入门完全指南