Bienvenidos! Este教程续集18个PASOS分布式MERN(Mongo,React,Express,Node)。 Pueden bajarse el codigo e ir leyendo。
Repositorio github con el codigo:https://github.com/kowired/mernstack
🕺PASO1
Crear el archivo package.json。 Desde Visual Studio Code Podemos ejecutar到Terminal con la siguiente linea de codigo
npm init-是
🕺PASO2
体温依赖性。 快来看看美国南方部分视觉特刊。 Tambien vamos是安装在paqte上的express-graphql para traabajar con GraphQL和graphql-tools以及许可的痕迹GraphQL。 MonagoDB的ORM para conectarnos和Ademas de Mongoose。
- 我们可以通过AOT和延迟加载使Angular 2.0 App更快吗?
- 使用Sass将Angular Material连接到Angular-cli,而没有所有错误
- 了解剩余运算符和传播语法
- 插座工
- React的语义UI:CSS框架
npm install --save express express-graphql graphql-tools猫鼬
Tambien vamos安装在desarrollo上的lasdependencias。
npm install --save-dev babel-cli babel-preset-env babel-preset-stage-0
🕺PASO3
Debajo de“ scripts” dentro del archivo package.json
“ name”:“ mern-api”,
“ version”:“ 1.0.0”,
“ description”:“”,
“ main”:“ index.js”,
“脚本”:{
Voy agregar NODEMON(“自动完成”)
“ start”:“ nodemon ./index.js --exec babel-node -e js”
🕺帕索4
存档库index.js可以在存档库server.js中使用。 Esto es solo para habilitar babel
require('babel-register')({
预设:['es2015']
});
require('./ server');
🕺帕索5
Iniciamos el servidor表达。 Creamos un archivo server.js con siguiente codigo:
从“快递”进口快递;
const app = express();
const PORT = 30001;
mongoose.Promise = global.Promise;
mongoose.connect('mongodb:// localhost / mern_db');
app.get('/',(req,res)=> {
res.json({
味精:“ Bienvenido Al MERN教程”
})
});
app.listen(PORT,()=> {
console.log(`El servidor escucha en el puerto $ {PORT}`);
});
Ahora瓜达莫斯档案。 哥斯达黎加人民报

🕺PASO6
Inconamos MongoDB des consola con el comando
蒙哥
Tambien se puede utilizar una base de datos mongodb在线:mlab.com
🕺PASO7
Importamos猫鼬是一个原始档案index.js。
从“猫鼬”进口猫鼬;
Vamos a conectarnos一个新的本地mongodb基地。 Yo la llame test pero la puedes llamar como quieras。
mongoose.Promise = global.Promise;
mongoose.connect('mongodb:// localhost / mern_db');
🕺帕索8
Agregamos GraphQL y模式
从'express-graphql'导入graphlHTTP;
从'./schema'导入模式;
利用GaphQL进行新的应用
app.use('/ graphql',graphlHTTP({
模式:模式,
graphiql:是
}));
El paquete express-graphql funciona COMO UN中间件。 无需查询中间件图或中间件的突变就可以查询结果。 在HTTP HTTP协议上的所有行为。
🕺帕索9
Creamos el archivo schema.js和Directorio raiz。
Primero importamos los paquetes que vamos一个必要的
从“ graphql-tools”导入{makeExecutableSchema};
从'./resolvers'导入{resolvers};
Luego definimos un type Query和un type Producto
类型Producto {
_id:ID!
titulo:弦!
应聘者:Int
}
输入查询{
obtenerProductos:[Producto]
}
结局宣言
const schema = makeExecutableSchema({
typeDefs,
解析器
});
导出默认架构;
🕺帕索10
瓦莫斯一个残酷的解决者 。 Este解析器不会通过许可创建查询或可自定义的突变 。 通过vamar a lalamar resolver.js和estar en la raiz del Directorio
从'./modelos/producto'导入Producto;
出口const解析器= {
查询:{
异步obtenerProductos(){
返回等待Producto.find();
}
Cuando ejecutemos obtenerProductos ()不能通过异步方式传输到Promesa que es el resultado de una ejecucion asyncronica。
🕺帕索11
模特儿。 Lo vamos a lalamar Producto。 前血入口处的多巴哥。 Creamos una nueva carpeta lalamada Modelo和ahi colocamos el archivo Producto.js。
从“猫鼬”进口猫鼬;
const Schema = mongoose.Schema;
const ProductoSchema = new Schema({
titulo:{
类型:字符串,
必填:true
},
候选人:{
类型:数字
}
});
导出默认的mongoose.model('producto',ProductoSchema);
🕺帕索12
宜人的应用程序。 Ejecutamos npm start y vamos al siguiente端点http:// localhost:30001 / graphql。 偷偷摸摸地看待通货紧要的东西。 Este es el resultado:

🕺帕索13
Agregamos没有必要更改任何原始档案resolvers.js。 Asi podemos agregar产品在datos mongo的新基地。
变异:{
异步crearProducto(root,{input}){
返回等待Producto.create(input);
},
🕺帕索14
Agregamos la mutacion crearProduct一个新的archivo schema.js:
变异:{
异步crearProducto(root,{input}){
返回等待Producto.create(input);
},
🕺帕索15
Vamos agregar un producto nuestra base de datos。

🕺帕索16
Agregamos getProduct档案archivo schema.js
obtenerProducto(_id:ID!):产品
Tambien en el resolver.js
异步obtenerProducto(root,{_id}){
返回等待Producto.findById(_id);
}

🕺PASO17
实际生产的Agregamos la funcion产品
ActualizarProducto(_id:ID !,输入:ProductoIngreso):Producto
tambien lo agregamos al resolver.js
异步ActualizarProducto(root,{_id,input}){
返回等待Producto.findOneAndUpdate({_ id},input,{new:true})
}
Verificamos los resultados con Graphql

🕺PASO18
Agregamos el borrado del producto和schema.js
borrarProducto(_id:ID!):产品
Tambien en el resolver.js
异步borrarProducto(root,{_id}){
返回等待Producto.findOneAndRemove({_ id});
}
Lo verificamos

✏️结论

在18个对象中,MonQ,Mongo,Express,React,Node缺少GraphQL堆栈。 Pudimos ejecutar lasoperciones CRUD(Crear,Leer,Actualizar,Borrar)。 结束邮编的教程GraphQL是一名邮递员。 Espero que les haya sido de ayuda。
格拉西亚斯!