返回顶部
首页 > 资讯 > 前端开发 > node.js >怎么用NodeJS+MongoDB+AngularJS+Bootstrap开发书店
  • 647
分享到

怎么用NodeJS+MongoDB+AngularJS+Bootstrap开发书店

2024-04-02 19:04:59 647人浏览 独家记忆
摘要

本篇内容主要讲解“怎么用nodejs+mongoDB+angularjs+Bootstrap开发书店”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用node

本篇内容主要讲解“怎么用nodejs+mongoDB+angularjs+Bootstrap开发书店”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用nodeJS+MonGoDB+AngularJS+Bootstrap开发书店”吧!

示例名称:天狗书店

功能:完成前后端分离的图书管理功能,总结前端学习过的内容。

技术:NodeJS、Express、Monk、MongoDB、AngularJS、BootStrap、跨域

一、Bootstrap

Bootstrap是一个UI框架,它支持响应式布局,在PC端与移动端都表现不错。

Bootstrap是Twitter推出的一款简洁、直观、强悍的前端开发框架。

Bootstrap中包含了丰富的WEB组件,根据这些组件,可以快速的搭建一个漂亮、功能完备的网站。

1.1、添加引用

也可使用包管理器也可以去官网下载后添加引用。

1.2、在页面中使用BootStrap

添加CSS引用:

<link rel="stylesheet" type="text/css" href="js/bootstrap/dist/css/bootstrap.min.css" />

添加javascript引用:

<script src="Http://libs.baidu.com/Jquery/2.0.0/jquery.min.js"></script><script src="js/bootstrap/dist/js/bootstrap.min.js" type="text/javascript" charset="utf-8"></script>

在页面中引用BootStrap定义好的样式

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>bootstrap</title> <link rel="stylesheet" type="text/css" href="js/bootstrap/dist/css/bootstrap.min.css" /> </head> <body> <div class="container-fluid"> <div class="row"> <div class="jumbotron"> <h2>Hello, world!</h2> <p>This is a simple hero unit, a simple jumbotron-style component for calling extra attention to featured content or infORMation</p> <p> <a class="btn btn-primary btn-lg" href="#" role="button">Learn more</a> </p> </div> </div> <div class="row"> <div class="col-md-6"> <button type="button" class="btn btn-default">默认</button> <button type="button" class="btn btn-primary">主要</button> <button type="button" class="btn btn-success">成功</button> <button type="button" class="btn btn-info">信息</button> <button type="button" class="btn btn-warning">警告</button> <button type="button" class="btn btn-danger">错误</button> <button type="button" class="btn btn-link">链接</button> </div> <div class="col-md-6"> <button type="button" class="btn btn-default btn-lg">默认</button> <button type="button" class="btn btn-default">默认</button> <button type="button" class="btn btn-default btn-sm">默认</button> <button type="button" class="btn btn-default btn-xs">默认</button> </div> </div> </div> <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script> <script src="js/bootstrap/dist/js/bootstrap.min.js" type="text/javascript" charset="utf-8"></script> </body></html>

1.3、可视化布局

二、使用MongoDB创建数据库

2.1、启动MongoDB数据库

数据库的具体安装、配置在前面的章节中已经讲解过,可以参考。

如果服务与配置都没有完成的话可以启动:C:/Program Files/MongoDB/Server/3.4/bin/mongod.exe

2.2、启动数据库GUI管理工具

2.3、创建数据库与集合

 在localhost上右键“create database”创建名称为BookStore的数据库

创建一个用于存放图书的集合名称为books。

在集合中添加5本图书。

db.getCollection('books').insert({id:201701,title:"使用AlarJS开发下一代应用程序",picture:"b1.jpg",price:55.0,author:"brad green"});

三、创建一个Express项目

这里使用Eclipse(HBuilder)为开发工具,添加Nodeclipse插件,新增一个Express项目

3.1、创建app.js

var express = require('express') , routes = require('./routes') , books = require('./routes/books') , http = require('http') , path = require('path');var app = express();// all environmentsapp.set('port', process.env.PORT || 3000);app.set('views', __dirname + '/views');app.set('view engine', 'ejs');app.use(express.favicon());app.use(express.logger('dev'));app.use(express.bodyParser());app.use(express.methodOverride());app.use(app.router);app.use(express.static(path.join(__dirname, 'public')));// development onlyif ('development' == app.get('env')) { app.use(express.errorHandler());}app.get('/', books.list);app.get('/books', books.list);http.createServer(app).listen(app.get('port'), function(){ console.log('Express server listening on port ' + app.get('port'));});

四、Monk访问MongoDB数据库

monk是NodeJS平台下访问MongoDB数据库的一个模块。monk访问MongoDB更加方便比NodeJS直接访问。

4.1、创建连接

const monk = require('monk')// Connection URLconst url = 'localhost:27017/myproject';const db = monk(url);db.then(() => { console.log('Connected correctly to server')})

4.2、插入数据

const url = 'localhost:27017/myproject'; // Connection URLconst db = require('monk')(url);const collection = db.get('document')collection.insert([{a: 1}, {a: 2}, {a: 3}]) .then((docs) => { // docs contains the documents inserted with added **_id** fields // Inserted 3 documents into the document collection }).catch((err) => { // An error happened while inserting }).then(() => db.close())users.insert({ woot: 'foo' })users.insert([{ woot: 'bar' }, { woot: 'baz' }])

4.3、更新数据

const url = 'localhost:27017/myproject'; // Connection URLconst db = require('monk')(url);const collection = db.get('document')collection.insert([{a: 1}, {a: 2}, {a: 3}]) .then((docs) => { // Inserted 3 documents into the document collection }) .then(() => { return collection.update({ a: 2 }, { $set: { b: 1 } }) }) .then((result) => { // Updated the document with the field a equal to 2 }) .then(() => db.close())users.update({name: 'foo'}, {name: 'bar'})

4.4、删除数据

const url = 'localhost:27017/myproject'; // Connection URLconst db = require('monk')(url);const collection = db.get('document')collection.insert([{a: 1}, {a: 2}, {a: 3}]) .then((docs) => { // Inserted 3 documents into the document collection }) .then(() => collection.update({ a: 2 }, { $set: { b: 1 } })) .then((result) => { // Updated the document with the field a equal to 2 }) .then(() => { return collection.remove({ a: 3}) }).then((result) => { // Deleted the document with the field a equal to 3 }) .then(() => db.close())users.remove({ woot: 'foo' })

4.5、查找数据

const url = 'localhost:27017/myproject'; // Connection URLconst db = require('monk')(url);const collection = db.get('document')collection.insert([{a: 1}, {a: 2}, {a: 3}]) .then((docs) => { // Inserted 3 documents into the document collection }) .then(() => collection.update({ a: 2 }, { $set: { b: 1 } })) .then((result) => { // Updated the document with the field a equal to 2 }) .then(() => collection.remove({ a: 3})) .then((result) => { // Deleted the document with the field a equal to 3 }) .then(() => { return collection.find() }) .then((docs) => { // docs === [{ a: 1 }, { a: 2, b: 1 }] }) .then(() => db.close())
users.find({}).then((docs) => {})users.find({}, 'name').then((docs) => { // only the name field will be selected})users.find({}, { fields: { name: 1 } }) // equivalentusers.find({}, '-name').then((docs) => { // all the fields except the name field will be selected})users.find({}, { fields: { name: 0 } }) // equivalentusers.find({}, { rawCursor: true }).then((cursor) => { // raw mongo cursor})users.find({}).each((user, {close, pause, resume}) => { // the users are streaming here // call `close()` to stop the stream}).then(() => { // stream is over})//创建的数据库var monk = require('monk')var db = monk('localhost:27017/bookstore')//读取数据:var monk = require('monk')var db = monk('localhost:27017/monk-demo')var books = db.get('books') books.find({}, function(err, docs) { console.log(docs)})//插入数据:books.insert({"name":"orange book","description":"just so so"})//查找数据:books.find({"name":"apple book"}, function(err, docs) { console.log(docs)})复制代码五、创建Rest后台服务在routes目录下增加的books.js文件内容如下:复制代码//依赖monk模块var monk = require('monk');//连接并打开数据库var db = monk('localhost:27017/BookStore');//从数据库中获得books集合,类似表,并非所有数据, keyvar books = db.get('books');//列出所有的图书JSONexports.list = function(req, res) { //无条件查找所有的图书,then是当查找完成时回调的异步方法 books.find({}).then((docs) => { //返回json给客户端 res.json(docs); }).then(() => db.close()); //关闭数据库};//获得最大idexports.getMax=function(req,res){ //找一个,根据id降序排序, books.findOne({}, {sort: {id: -1}}).then((bookObj)=>{ res.json(bookObj); }).then(() => db.close());;}//添加图书exports.add = function(req, res) { //先找到最大的图书编号 books.findOne({}, {sort: {id: -1}}).then((obj)=>{ //从客户端发送到服务器的图书对象 var book=req.body; //设置图书编号为最大的图书编号+1 book.id=(parseInt(obj.id)+1)+""; //执行添加 books.insert(book).then((docs) => { //返回添加成功的对象 res.json(docs); }).then(() => db.close()); });};//删除图书exports.del = function(req, res) { //从路径中取参数id,/:id var id=req.params.id; //移除编号为id的图书 books.remove({"id":id}).then((obj)=>{ //返回移除结果 res.json(obj); }).then(() => db.close());};//更新exports.update = function(req, res) { //获得提交给服务器的json对象 var book=req.body; //执行更新,第1个参数是要更新的图书查找条件,第2个参数是要更新的对象 books.update({"id":book.id}, book).then((obj)=>{ //返回更新完成后的对象 res.json(obj); }).then(() => db.close());};

为了完成跨域请求,修改http头部信息及路径映射,app.js文件如下:

var express = require('express'), routes = require('./routes'), books = require('./routes/books'), http = require('http'), path = require('path');var app = express();// all environmentsapp.set('port', process.env.PORT || 3000);app.set('views', __dirname + '/views');app.set('view engine', 'ejs');app.use(express.favicon());app.use(express.logger('dev'));app.use(express.bodyParser());app.use(express.methodOverride());app.use(app.router);app.use(express.static(path.join(__dirname, 'public')));app.all('*', function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "content-type"); res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS"); res.header("X-Powered-By", ' 3.2.1') res.header("Content-Type", "application/json;charset=utf-8"); if(req.method == "OPTIONS") { res.send("200"); } else { next(); }});// development onlyif('development' == app.get('env')) { app.use(express.errorHandler());}app.get('/', books.list);//获得所有的图书列表app.get('/books', books.list);//最大的编号app.get('/books/maxid', books.getMax);//添加app.post('/books/book', books.add);//删除app.delete('/books/id/:id', books.del);//更新app.put('/books/book', books.update);http.createServer(app).listen(app.get('port'), function() { console.log('Express server listening on port ' + app.get('port'));});

其它服务的测试可以使用Fiddler完成。

六、使用AngularJS调用后台服务

这里的UI使用BootStrap完成,前端使用AngularJS调用NodeJS发布的服务,将数据存放在MongoDB中。

index.js页面如下:

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>天狗书店</title> <link rel="shortcut icon" href="favicon.ico" /> <link rel="bookmark" href="favicon.ico" /> <link rel="stylesheet" type="text/css" href="js/bootstrap/dist/css/bootstrap.min.css" /> <style type="text/css"> .cover { height: 40px; width: auto; } .addBook { padding-top: 10px; } .w100 { width: 50px } .w200 { width: 200px; } .w300 { width: 300px } </style> </head> <body ng-app="bookApp"> <div class="container" ng-controller="BookController"> <div class="row clearfix"> <div class="col-md-12 column"> <nav class="navbar navbar-default" role="navigation"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"> <span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button> <a class="navbar-brand" href="#">天狗书店</a> </div> <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> <ul class="nav navbar-nav"> <li class="active"> <a href="#">前端</a> </li> <li> <a href="#">Java</a> </li> <li> <a href="#">.net</a> </li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">更多类型<strong class="caret"></strong></a> <ul class="dropdown-menu"> <li> <a href="#">Action</a> </li> <li> <a href="#">Another action</a> </li> <li> <a href="#">Something else here</a> </li> <li class="divider"> </li> <li> <a href="#">Separated link</a> </li> <li class="divider"> </li> <li> <a href="#">One more separated link</a> </li> </ul> </li> </ul> <form class="navbar-form navbar-left" role="search"> <div class="form-group"> <input type="text" class="form-control" /> </div> <button type="submit" class="btn btn-default">搜索</button> </form> </div> </nav> <div class="row clearfix"> <div class="col-md-12 column"> <div class="carousel slide" id="carousel-519027"> <ol class="carousel-indicators"> <li class="active" data-slide-to="0" data-target="#carousel-519027"> </li> <li data-slide-to="1" data-target="#carousel-519027"> </li> <li data-slide-to="2" data-target="#carousel-519027"> </li> </ol> <div class="carousel-inner"> <div class="item active"> <img alt="" src="img/adv3.jpg" /> <div class="carousel-caption"> </div> </div> <div class="item"> <img alt="" src="img/adv2.jpg" /> <div class="carousel-caption"> </div> </div> <div class="item"> <img alt="" src="img/adv1.jpg" /> <div class="carousel-caption"> <h5> Third Thumbnail label </h5> <p> Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit. </p> </div> </div> </div> <a class="left carousel-control" href="#carousel-519027" data-slide="prev"><span class="glyphicon glyphicon-chevron-left"></span></a> <a class="right carousel-control" href="#carousel-519027" data-slide="next"><span class="glyphicon glyphicon-chevron-right"></span></a> </div> </div> </div> </div> </div> <div class="row clearfix"> <div class="col-md-12 column"> <div class="addBook"> <a id="modal-234446" href="#modal-container-234446" role="button" class="btn btn-sm btn-primary" data-toggle="modal"><span class="glyphicon glyphicon-plus"></span> 新书上架</a> <div class="modal fade" id="modal-container-234446" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> <h5 class="modal-title" id="myModalLabel"> 添加/编辑图书 </h5> </div> <div class="modal-body"> <form class="form-horizontal" role="form"> <div class="form-group"> <label for="id" class="col-sm-2 control-label">编号</label> <div class="col-sm-10"> <input type="text" class="form-control w100" id="id" ng-model="book.id" ng-readonly="true" /> </div> </div> <div class="form-group"> <label for="title" class="col-sm-2 control-label">书名</label> <div class="col-sm-10"> <input type="text" class="form-control w300" id="title" ng-model="book.title" /> </div> </div> <div class="form-group"> <label for="picture" class="col-sm-2 control-label">图片</label> <div class="col-sm-10"> <input type="text" class="form-control w200" id="picture" ng-model="book.picture" /> </div> </div> <div class="form-group"> <label for="price" class="col-sm-2 control-label">价格</label> <div class="col-sm-10"> <input type="text" class="form-control w200" id="price" ng-model="book.price" /> </div> </div> <div class="form-group"> <label for="author" class="col-sm-2 control-label">作者</label> <div class="col-sm-10"> <input type="text" class="form-control w200" id="author" ng-model="book.author" /> </div> </div> </form> </div> <div class="modal-footer"> <button type="button" ng-click="save()" class="btn btn-primary"> <span class="glyphicon glyphicon-floppy-disk"></span> 保存</button> <button type="button" class="btn btn-success" ng-click="clear()" data-dismiss="modal"> <span class="glyphicon glyphicon-refresh"></span> 清空</button> <button type="button" class="btn btn-danger" data-dismiss="modal"> <span class="glyphicon glyphicon-remove"></span> 关闭</button> </div> </div> </div> </div> </div> <table class="table"> <thead> <tr> <th> 序号 </th> <th> 编号 </th> <th> 书名 </th> <th> 图片 </th> <th> 价格 </th> <th> 作者 </th> <th> 操作 </th> </tr> </thead> <tbody> <tr ng-repeat="b in books" ng-class="{'info':$odd}"> <td> {{$index+1}} </td> <td> {{b.id}} </td> <td> {{b.title}} </td> <td> <img ng-src="img/{{b.picture}}" class="cover" /> </td> <td> {{b.price | number:1}} </td> <td> {{b.author}} </td> <td> <button type="button" class="btn btn-danger btn-xs" ng-click="del(b.id,$index)">删除</button> <button href="#modal-container-234446" role="button" class="btn btn-xs btn-primary" data-toggle="modal" ng-click="edit(b)">编辑</button> </td> </tr> </tbody> </table> </div> </div> </div> <!--引入angularjs框架--> <script src="js/angular146/angular.min.js" type="text/javascript" charset="utf-8"></script> <script src="js/jQuery1.11.3/jquery-1.11.3.min.js" type="text/javascript" charset="utf-8"></script> <script src="js/bootstrap/dist/js/bootstrap.min.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> //定义模块,指定依赖项为空 var bookApp = angular.module("bookApp", []); //定义控制器,指定控制器的名称,$scope是全局对象 bookApp.controller("BookController", ['$scope', '$http', function($scope, $http) { $scope.books = []; $scope.save = function() { $http({ url: "http://127.0.0.1:3000/books/book", data: $scope.book, method: $scope.book.id ? "PUT" : "POST" }) .success(function(data, status, headers, config) { if($scope.book.id) { alert("修改成功"); } else { $scope.books.push(data); } }) .error(function(data, status, headers, config) { alert(status); }); } $scope.edit = function(b) { $scope.book = b; } $scope.clear = function() { $scope.book = {}; } //初始化加载 $http.get("http://127.0.0.1:3000/") .success(function(data, status, headers, config) { $scope.books = data; }) .error(function(data, status, headers, config) { alert(status); }); $scope.del = function(id, index) { $http.delete("http://127.0.0.1:3000/books/id/" + id) .success(function(data, status, headers, config) { $scope.books.splice(index, 1); }) .error(function(data, status, headers, config) { alert(status); }); } }]); </script> </body></html>

到此,相信大家对“怎么用NodeJS+MongoDB+AngularJS+Bootstrap开发书店”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 怎么用NodeJS+MongoDB+AngularJS+Bootstrap开发书店

本文链接: https://lsjlt.com/news/91264.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么用NodeJS+MongoDB+AngularJS+Bootstrap开发书店
    本篇内容主要讲解“怎么用NodeJS+MongoDB+AngularJS+Bootstrap开发书店”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Node...
    99+
    2024-04-02
  • 如何使用NodeJS+MongoDB+AngularJS+Bootstrap开发书店项目
    这篇文章给大家分享的是有关如何使用NodeJS+MongoDB+AngularJS+Bootstrap开发书店项目的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。示例名称:天狗书店...
    99+
    2024-04-02
  • 基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析
    这章的目的是为了把前面所学习的内容整合一下,这个示例完成一个简单图书管理模块,因为中间需要使用到Bootstrap这里先介绍Bootstrap。 示例名称:天狗书店 功能:完成前后端分离的图书管理功能,总结...
    99+
    2022-06-04
    案例分析 书店 MongoDB
  • angularjs+bootstrap菜单怎么用
    这篇文章主要为大家展示了“angularjs+bootstrap菜单怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“angularjs+bootstrap菜...
    99+
    2024-04-02
  • nodejs用什么语言开发
    Node.js 是基于 JavaScript 编程语言开发的。JavaScript 是一种面向对象的动态语言,很多人认为 JavaScript 只是前端开发工作中的一种脚本语言,因为它是 DOM 操作和 Ajax 技术中的核心语言,但实际上...
    99+
    2023-05-14
  • Serverless中怎么使用typescript + nodejs进行开发
    这篇文章主要讲解了“Serverless中怎么使用typescript + nodejs进行开发”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Serverl...
    99+
    2024-04-02
  • web开发中怎么用代码编制情书
    这篇文章主要讲解了“web开发中怎么用代码编制情书”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“web开发中怎么用代码编制情书”吧!感谢各位的阅读,以上就是“web开发中怎么用代码编制情书”...
    99+
    2023-06-03
  • 怎么用mpvue+koa+mongodb开发商城小程序
    本篇内容主要讲解“怎么用mpvue+koa+mongodb开发商城小程序”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用mpvue+koa+mongodb开发商城小程序”吧!技术栈前端: 微...
    99+
    2023-06-26
  • ASP.NET MVC Bootstrap极速开发框架该怎么构建
    这期内容当中小编将会给大家带来有关ASP.NET MVC Bootstrap极速开发框架该怎么构建,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。前言每次新开发项目都要从头开始设计?有木有一个通用的快速开发...
    99+
    2023-06-17
  • 25个有用的AngularJS Web开发工具分别是什么
    本篇文章为大家展示了25个有用的AngularJS Web开发工具分别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。AngularJS是为了克服HTML在构建...
    99+
    2024-04-02
  • windows应用商店怎么打开?win10应用商店四种打开方法
    本文介绍在windows10中打开应用商店的几种方法 方法一: 1、windows10默认会把应用商店放在任务栏,如图所示图标,如果在任务栏没有应用商店图标,请按照方法3打开 方法二: 1、点击开始菜单按钮 2、在...
    99+
    2023-06-17
    win8怎么打开应用商店 windows 应用商店 windowsphone应用商店 应用 商店 win10 方法
  • nodejs中怎么实现微信公众号开发
    今天就跟大家聊聊有关nodejs中怎么实现微信公众号开发,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.公众平台测试帐号的使用登录微信公众平台,由...
    99+
    2024-04-02
  • 怎么正确编写C++项目开发计划书
    本篇内容主要讲解“怎么正确编写C++项目开发计划书”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么正确编写C++项目开发计划书”吧!1、编写目的为了保证项目开发人员按时保质地完成预订目标,更好...
    99+
    2023-06-17
  • 怎么使用Reactjs+Nodejs+Mongodb实现文件上传功能
    本文小编为大家详细介绍“怎么使用Reactjs+Nodejs+Mongodb实现文件上传功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用Reactjs+Nodejs+Mongodb实现文件上传功能”文章能帮助大家解决疑惑,下面跟...
    99+
    2023-07-02
  • MongoDB对开源的真实用意的开发是怎样的
    这篇文章给大家介绍MongoDB对开源的真实用意的开发是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。现在大大小小的公司都在搞开源,在被问到为什么开源某个项目时,负责人要么说是贡...
    99+
    2024-04-02
  • 怎么用Shell脚本快速搭建Ubuntu下的Nodejs开发环境
    小编给大家分享一下怎么用Shell脚本快速搭建Ubuntu下的Nodejs开发环境,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!nodejs的确是很火,以前倒腾过...
    99+
    2023-06-09
  • windows10应用商店打不开怎么解决
    如果Windows 10应用商店无法打开,你可以尝试以下方法来解决问题:1. 重启电脑:有时候,简单地重启电脑可以解决应用商店无法打...
    99+
    2023-09-18
    windows10
  • win10应用商店打不开怎么解决
    这篇文章主要介绍“win10应用商店打不开怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“win10应用商店打不开怎么解决”文章能帮助大家解决问题。win10应用商店打不开的解决办法:操作步骤...
    99+
    2023-07-01
  • Win10应用商店打不开了怎么办?
        为了尝鲜安装win10系统,但是安装好了以后发现应用商店打不开,点击后显示无法打开这个应用,该怎么解决呢?下面分享Win10应用商店打不开的方法,需要的朋友可以参考下。win10应用商店可以打开却不能下载软件,可...
    99+
    2023-06-09
    Win10 应用商店 商店 应用
  • 水果实体店铺开发小程序商城怎么运营
    本文小编为大家详细介绍“水果实体店铺开发小程序商城怎么运营”,内容详细,步骤清晰,细节处理妥当,希望这篇“水果实体店铺开发小程序商城怎么运营”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.利用小程序预约功能在开...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作