init
This commit is contained in:
265
node.txt
Normal file
265
node.txt
Normal file
@@ -0,0 +1,265 @@
|
||||
**take node_login**
|
||||
[]
|
||||
**npm init -y**
|
||||
[package.json]
|
||||
**npm i express backpack-core mongoose volleyball dotenv babel-preset-stage-3**
|
||||
[node_modules]
|
||||
[package.json]
|
||||
[package-lock.json]
|
||||
**(express)** simplifie le code de node
|
||||
**(backpack)** recharge le serveur en live (npm start)
|
||||
**(babel)** comprend l'es6 (marche avec backpack)
|
||||
**(mongoose)** permet d'uiliser la base de donnée Mongodb
|
||||
**(volleyball)** informe en direct sur ce que tu fais
|
||||
**(dotenv)** cacher les variable environnement
|
||||
|
||||
**----------------------**
|
||||
|
||||
**node_login/package.json**
|
||||
remplacer "test": "echo \"Error: no test specified\" && exit 1"
|
||||
par "start": "backpack"
|
||||
|
||||
**node_login**
|
||||
take src
|
||||
touch index.js
|
||||
|
||||
**node_login**
|
||||
npm start //demare backpack et genere build/
|
||||
|
||||
**node_login**
|
||||
touch .env .babelrc
|
||||
|
||||
**node_login/.babelrc**
|
||||
{
|
||||
"presets": [
|
||||
"backpack-core/babel",
|
||||
"stage-3"
|
||||
]
|
||||
}
|
||||
|
||||
**node_login**
|
||||
mongod
|
||||
(il va peut-être falloir creer le fichier db dans le dossier data a la racine "sudo mkdir -p /data/db" -p pour creer un fichier dans un dossier et aussi donner tous les droits a db "sudo chmod 777 /data/db")
|
||||
|
||||
**node_login/.env**
|
||||
SERVER_PORT=3000
|
||||
DBUrl = "mongodb://localhost/users_db"
|
||||
|
||||
**node_login/src/index.js**
|
||||
import "dotenv/config";
|
||||
import express from "express";
|
||||
import volleyball from "volleyball";
|
||||
import mongoose from "mongoose";
|
||||
import passport from "passport";
|
||||
import bcrypt from "bcrypt";
|
||||
|
||||
const app = express();
|
||||
const {SERVER_PORT, DBUrl} = process.env;
|
||||
const url = DBUrl;
|
||||
const options = {promiseLibrary:Promise}
|
||||
|
||||
mongoose.connect(url, options);
|
||||
mongoose.connection.on("connected", () => {
|
||||
console.log("the mongo is working 27017")
|
||||
})
|
||||
|
||||
app.use(express.json());
|
||||
app.use(express.urlencoded({extended:true}));
|
||||
app.use(volleyball);
|
||||
|
||||
app.listen(SERVER_PORT, () => {
|
||||
console.log(`server is listening port... ${SERVER_PORT}`)
|
||||
});
|
||||
|
||||
app.get('/', (req,res)=>{
|
||||
res.send('life is good with Hajar')
|
||||
})
|
||||
|
||||
**node_login**
|
||||
mkdir public src/models src/routes src/views
|
||||
|
||||
**node_login/src/models/user.js**
|
||||
import mongoose from "mongoose";
|
||||
const Schema = mongoose.Schema;
|
||||
const userSchema = new Schema({
|
||||
name: {type:String, required:true},
|
||||
email: {type:String, required:true},
|
||||
username: {type:String, required:true},
|
||||
password: {type:String, required:true},
|
||||
})
|
||||
|
||||
const User = mongoose.model("User", userSchema);
|
||||
export {User};
|
||||
|
||||
**node_login/src/routes/routes.js**
|
||||
import express from "express";
|
||||
import {User} from "../models/user";
|
||||
|
||||
const userRouter = express.Router();
|
||||
|
||||
userRouter.post("/new_user", (req,res)=>{
|
||||
let newUser = new User(req.body)
|
||||
newUser.save((err,user)=>{
|
||||
if(err) res.send(err)
|
||||
res.json(user)
|
||||
})
|
||||
})
|
||||
|
||||
export {userRouter};
|
||||
|
||||
**node_login/src/index.js**
|
||||
ajouter :
|
||||
import {userRouter} from "./routes/routes";
|
||||
et
|
||||
app.use("/users", userRouter) //utiliser userRouter pour les url /users
|
||||
|
||||
**node_login/src/views**
|
||||
touch layout.pug user_add.pug
|
||||
|
||||
**node_login/src/views/layout.pug**
|
||||
doctype html
|
||||
html
|
||||
head
|
||||
title
|
||||
link(href="/css/")
|
||||
|
||||
body
|
||||
h1 formulaire
|
||||
block content
|
||||
|
||||
**node_login/src/views/user_add.pug**
|
||||
extends layout
|
||||
block content
|
||||
h2 sign in
|
||||
|
||||
form(action="/users/new_user", method="post")
|
||||
div
|
||||
h5 name
|
||||
input(type="text", name="name", placeholder="enter name")
|
||||
input(type="text", name="email", placeholder="enter email")
|
||||
input(type="text", name="username", placeholder="enter username")
|
||||
input(type="password", name="password", placeholder="enter password")
|
||||
input(type="password", name="confirm", placeholder="confirm password")
|
||||
div
|
||||
h5 validate
|
||||
input(type="submit", value="enter")
|
||||
|
||||
**node_login/src/routes/routes.js**
|
||||
ajouter
|
||||
userRouter.get("/new_user", (req, res)=>{
|
||||
res.render("user_add")
|
||||
})
|
||||
|
||||
**node_login/src/index.js**
|
||||
ajouter
|
||||
import path from "path";
|
||||
et
|
||||
app.use(express.static(path.join(__dirname+"/public")))
|
||||
app.set("views", path.join(__dirname + "/views"))
|
||||
app.set("view engine", "pug")
|
||||
|
||||
|
||||
|
||||
-----------------------------------------------
|
||||
-----------------------------------------------
|
||||
|
||||
**express generator** creer le contenu de base automatiquement
|
||||
**bodyparser** envois les informations d'un formulaire à mongoose
|
||||
|
||||
|
||||
**ngrok https://nrgok.com** pour heberger le site en ligne pendant quelques heures pour le tester
|
||||
|
||||
|
||||
|
||||
--------------------------------
|
||||
|
||||
|
||||
**base .env**
|
||||
PORT=3000
|
||||
|
||||
**base src index.js**
|
||||
import express from "express"
|
||||
import "dotenv/config"
|
||||
const app = express();
|
||||
|
||||
const { PORT } = process.env
|
||||
|
||||
app.listen(PORT, () => {
|
||||
console.log(`ca marche : ${ PORT }`)
|
||||
})
|
||||
|
||||
app.get("/coucou", (req, res) => {
|
||||
res.json("coucou les amis")
|
||||
})
|
||||
|
||||
**base src routes basic.js**
|
||||
import express from "express"
|
||||
|
||||
const basicRouter = express.Router();
|
||||
|
||||
basicRouter.get("/:name", (req, res) => { //jsute un test (:name recupere
|
||||
res.json(`je suis ${req.params.name}`) //des parametres depuis l'url
|
||||
})
|
||||
|
||||
export {basicRouter}
|
||||
|
||||
**--> base src index.js**
|
||||
import { basicRouter } from "./routes/basic"
|
||||
|
||||
app.use("/", basicRouter)
|
||||
|
||||
**base src routes books.js**
|
||||
import express from "express"
|
||||
|
||||
const booksRouter = express.Router();
|
||||
|
||||
booksRouter.get("/add_book", (req, res) => {
|
||||
res.json("ca marche")
|
||||
})
|
||||
|
||||
export {booksRouter}
|
||||
|
||||
**------------------------------**
|
||||
|
||||
**create-react-app nom** creer react dans un dossier "nom"
|
||||
**npm start** lance react
|
||||
**take server**
|
||||
**npm init -y** creer node dans server (server a la racine)
|
||||
**/server npm i express backpack-core mongoose volleyball dotenv babel-preset-stage-3**
|
||||
**vim /server/.babelrc** compilateur es6 pour js
|
||||
{
|
||||
"presets": [
|
||||
"backpack-core/babel",
|
||||
"stage-3"
|
||||
]
|
||||
}
|
||||
**vim /server/.env**
|
||||
PORT=3001 **(3000 est deja utilise par react)**
|
||||
DBUrl= "mongodb://localhost/blog_db"
|
||||
**take /server/src**
|
||||
**vim /server/src/index.js**
|
||||
import "dotenv/config"
|
||||
import express from "express"
|
||||
const app = express();
|
||||
import mongoose from "mongoose"
|
||||
import volleyball from "volleyball"
|
||||
app.use(volleyball);
|
||||
const { PORT, DBUrl } = process.env;
|
||||
**vim /server/package.json**
|
||||
("test"...) supression
|
||||
"start": "backapck"
|
||||
**npm start** (blog/server/) lance node
|
||||
**vim /server/src/index.js**
|
||||
app.listen(PORT, () => {
|
||||
console.log(`server is listening port... ${PORT}`)
|
||||
})
|
||||
**vim /server/.env**
|
||||
DBUrl= "mongodb://localhost**:27017**/blog_db"
|
||||
**vim /server/src/index.js**
|
||||
const options = {promiseLibrary:Promise, useNewUrlParser:true}
|
||||
|
||||
mongoose.connect((DBUrl), options)
|
||||
mongoose.connection.on("connected", () => {
|
||||
console.log("the mongo is working 27017")
|
||||
})
|
||||
**mongod** (/server)
|
||||
Reference in New Issue
Block a user