เดฎเตเดฎเตเดชเดคเตเดคเต เดฒเตเดเดจเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเดฟเดเตเดเตพเดเตเดเต เดฎเดจเดธเตเดธเดฟเดฒเดพเดเตเดเดพเตป เดเดดเดฟเดฏเตเดจเตเดจเดคเตเดชเตเดฒเต, เดเดพเตป เดตเตเดฏเดคเตเดฏเดธเตเดค เดชเตเดฐเตเดเดเตเดฑเตเดฑเตเดเดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเต. เดเดฐเต เดชเตเดคเดฟเดฏ เดเตเดฎเดฟเดฒเต เดเดฆเตเดฏ เดฆเดฟเดตเดธเดเตเดเตพ เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดเดคเต เดฐเตเดคเดฟเดฏเดฟเตฝ เดคเดจเตเดจเต เดชเตเดเตเดจเตเดจเต: เดฌเดพเดเตเดเตปเดกเตผ เดเดจเตเดจเตเดเตเดชเตเดชเด เดเดฐเตเดจเตเดจเต, เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเดพเดจเตเด เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเดพเดจเตเด เดฎเดพเดจเตเดคเตเดฐเดฟเด เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ เดจเดเดคเตเดคเตเดจเตเดจเต. เดซเตเดฐเดฃเตเดเต เดเตปเดกเต เดกเตเดตเดฒเดชเตเดชเตผเดฎเดพเตผเดเตเดเต เดกเตเดเตเดเตผ เดเดดเดฟเดเตเดเตเดเตเดเดพเดจเดพเดตเดพเดคเตเดคเดคเดพเดฃเต เดเดพเดฐเดฃเด... เดฌเดพเดเตเดเตเตปเดกเต เดชเดฒเดชเตเดชเตเดดเตเด PHP/Java/Python/C# เดธเตเดฑเตเดฑเดพเดเตเดเตเดเดณเตเดเต เดตเดฟเดถเดพเดฒเดฎเดพเดฏ เดถเตเดฐเตเดฃเดฟเดฏเดฟเตฝ เดเดดเตเดคเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต, เดเตเดเดพเดคเต เดเดฒเตเดฒเดพเด เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเดพเดจเตเด เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเดพเดจเตเด เดซเตเดฐเดฃเตเดเต เดเดฐเต เดคเดตเดฃเดฏเตเด เดฌเดพเดเตเดเตเตปเดกเดฟเดจเตเดฑเต เดถเตเดฐเดฆเตเดง เดคเดฟเดฐเดฟเดเตเดเตเดฃเตเดเดคเดฟเดฒเตเดฒ. เดธเตเดคเดพเดฐเตเดฏเดฎเดพเดฏ เดตเดฟเดจเตเดฏเดพเดธเด, เดฒเตเดเตเดเตพ, เดเดเตเดเตเดฎเตเดฑเตเดฑเดกเต เดเตเดธเตเดฑเตเดฑเตเดเตพ เดเดจเตเดจเดฟเดตเดฏเตเดณเตเดณ เดกเตเดเตเดเตผ-เดเตเดเตเดเดฟเตปเดธเต เดเตเดฎเตเดชเดฟเดจเตเดทเตป เดเดฐเดฟเดเดคเตเดคเต เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เดเดพเตป เดเดฃเตเดเดคเต.
เดกเตเดเตเดเดฑเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเต เดตเดฟเดถเดฆเดฎเดพเดฏ เดจเดฟเดฐเดตเดงเดฟ เดฒเตเดเดจเดเตเดเตพ เดเดดเตเดคเดฟเดฏเดฟเดเตเดเตเดฃเตเดเต. เด เดฒเตเดเดจเด VueJS/Vue เดฑเตเดเตเดเตผ เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฐเต เดธเดฟเดเดเดฟเตพ เดชเตเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเต เดธเดเดธเดพเดฐเดฟเดเตเดเตเด, เดธเตเตผเดตเตผ เดญเดพเดเด NodeJS เดเดณเตเดณ เดเดฐเต RESTful API เดฐเตเดชเดคเตเดคเดฟเดฒเดพเดฃเต, เดเตเดเดพเดคเต MongoDB เดเดฐเต เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดพเดฏเดฟ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต. เดเดจเตเดจเดฟเดฒเดงเดฟเดเด เดเดฃเตเดเตเดฏเตโเดจเตผ เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเตพ เดจเดฟเตผเดตเดเดฟเดเตเดเดพเดจเตเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเดพเดจเตเด เดกเตเดเตเดเตผ เดเดฎเตเดชเตเดธเต เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต.
เดเดจเตเดคเตเดเตเดฃเตเดเต เดกเตเดเตเดเตผ เดเดตเดถเตเดฏเดฎเดพเดฃเต
เดเดฐเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเดจเตเดจ เดชเตเดฐเดเตเดฐเดฟเดฏ เดเดเตเดเตเดฎเตเดฑเตเดฑเต เดเตเดฏเตเดฏเดพเตป เดกเตเดเตเดเตผ เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต. เดกเดตเดฒเดชเตเดชเตผเดเตเดเต เดเดจเดฟ เดธเตเดตเดจเตเดคเดฎเดพเดฏเดฟ เดชเตเดฐเตเดเตเดฐเดพเดฎเตเดเตพ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดฃเตเดเดคเดฟเดฒเตเดฒ เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เด เดตเดจเตเดฑเต เดฎเตเดทเตเดจเดฟเดฒเต เดชเดคเดฟเดชเตเดชเต เดชเตเดฐเตเดคเตเดคเดเตเดเตเดเต เดเตเดเดพเดฐเตเดฏเด เดเตเดฏเตเดฏเตเดฃเตเดเดคเดฟเดฒเตเดฒ. เดจเดฟเดเตเดเตพ เดเตเดฏเตเดฏเตเดฃเตเดเดคเต เดกเตเดเตเดเตผ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดคเต เดเตบเดธเตเดณเดฟเตฝ 1-2 เดเดฎเดพเตปเดกเตเดเตพ เดเตเดชเตเดชเต เดเตเดฏเตเดฏเตเด. เดเดคเดฟเดจเตเดณเตเดณ เดเดฑเตเดฑเดตเตเด เดธเตเดเดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฏ เดฎเดพเตผเดเด เดฒเดฟเดจเดเตเดธเดฟเดฒเดพเดฃเต.
เดเดฎเตเดเด
เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเด
เดซเตเตพเดกเตผ เดเดเดจ
เดเตเดฒเดฏเดจเตเดฑเต, เดธเตเตผเดตเตผ เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเตพเดเตเดเดพเดฏเดฟ เดเดเตเดเตพ 2 เดซเตเตพเดกเดฑเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเต. .yml เดตเดฟเดชเตเดฒเตเดเดฐเดฃเดฎเตเดณเตเดณ เดเดฐเต เดซเดฏเตฝ เดเดฐเต เดเตเตบเดซเดฟเดเดฑเดพเดฃเต เดกเตเดเตเดเตผ เดฐเดเดฟเดเตเดเตเด, เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเตพ เดจเดฟเตผเดตเดเดฟเดเตเดเตเดเดฏเตเด เดฌเดจเตเดงเดชเตเดชเตเดเตเดคเตเดคเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเดฟเดเดคเตเดคเต.
Docker-compose.yml:
version: "3"
services:
mongo:
container_name: mongo
hostname: mongo
image: mongo
ports:
- "27017:27017"
server:
build: server/
#command: node ./server.js #ะทะดะตัั ะผะพะถะฝะพ ะฟะตัะตะทะฐะฟะธัะฐัั CMD ะธะท Dockerfile ะฒ /server
ports:
- "3000:3000"
links:
- mongo
client:
build: client/
#command: http-server ./dist #ะทะดะตัั ะผะพะถะฝะพ ะฟะตัะตะทะฐะฟะธัะฐัั CMD ะธะท Dockerfile ะฒ /client
network_mode: host
ports:
- "8089:8089"
depends_on:
- server
เดเดเตเดเตพ เดกเตเดเตเดเดฑเดฟเตฝ 3 เดธเตเดตเดจเดเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเต: NodeJS, MongoDB, Vue-เดฏเดฟเดฒเต เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเดเต เดธเตเดตเดจเดเตเดเตพ เดเดจเตเดจเดฟเดตเดฏเตเดเตเดเดพเดฏเดฟ. เดเตเดฒเดฏเดจเตเดฑเต เดธเตเตผเดตเดฑเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดเตเตผเดคเตเดคเต เดธเตเตผเดตเดฑเดฟเดจเต เดเดถเตเดฐเดฏเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดฎเตเดเดเตเดกเดฟเดฌเดฟเดฏเต เดธเตเตผเดตเตผ เดเดชเดฟเดเดฏเตเดฎเดพเดฏเดฟ เดฒเดฟเดเตเดเต เดเตเดฏเตเดฏเดพเตป, เดเดชเดฏเตเดเดฟเดเตเดเตเด เดฒเดฟเดเตเดเตเดเตพ เดฎเตเดเดเต. เดธเตเตผเดตเตผ, เดเตเดฒเดฏเดจเตเดฑเต, เดฎเตเดเดเต - เดธเตเดตเดจเดเตเดเดณเตเดเต เดชเตเดฐเตเดเตพ.
VueJS เดเตเดฒเดฏเดจเตเดฑเต
เดซเตเตพเดกเดฑเดฟเตฝ /เดเดเตเดทเดฟ เดเดชเตเดฒเดฟเดเตเดเตเดทเตป VueJS เด
เดเดฟเดธเตเดฅเดพเดจเดฎเดพเดเตเดเดฟเดฏเตเดณเตเดณเดคเดพเดฃเต. เดเดชเดฏเตเดเดฟเดเตเดเดพเดฃเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดธเตเดทเตเดเดฟเดเตเดเดคเต
FROM node:10
WORKDIR /client
COPY ./package*.json ./
RUN npm install
RUN npm install -g http-server
COPY . .
RUN npm run build
EXPOSE 8081
CMD ["npm", "test:dev"]
เดชเดพเดเตเดเตเดเต.json เดฎเดฑเตเดฑเต เดชเตเดฐเตเดเดเตโเดฑเตเดฑเต เดซเดฏเดฒเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฐเดคเตเดฏเตเดเด เดชเดเตผเดคเตเดคเดฟ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตโเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต เดเดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเด. เดเดคเต เดชเตเตผเดซเตเดฎเตปเดธเดฟเดจเดพเดฏเดฟ เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเดพเตฝ, เดตเตเดฃเตเดเตเด เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเตเดฎเตเดชเตเตพ /node_modules เดซเตเตพเดกเดฑเดฟเดฒเต เดเดณเตเดณเดเดเตเดเดเตเดเตพ เดเดพเดทเต เดเตเดฏเตเดฏเดชเตเดชเตเดเตเด. เดเดฐเต เดเดฎเดพเตปเดกเต เดฒเตเดจเตเด เดชเตเดฐเดคเตเดฏเตเดเด เดเดพเดทเต เดเตเดฏเตเดฏเตเดจเตเดจเต.
เด
เดตเดธเดพเดจเดฎเดพเดฏเดฟ, เดเดฃเตเดเตเดฏเตเดจเตผ เดเดฐเดเดญเดฟเดเตเดเตเดฎเตเดชเตเตพ, เดเดฎเดพเตปเดกเต เดเดเตเดธเดฟเดเตเดฏเตเดเตเดเต เดเตเดฏเตเดฏเตเดจเตเดจเต npm run dev
. เดชเดพเดเตเดเตเดเต.json-เตฝ เด เดเดฎเดพเตปเดกเต เดตเดฟเดตเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต:
"scripts": {
"test:dev": "http-server dist -p 8081 -c 1 --push-state"
}
เดเดฐเต เดซเตเตพเดกเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดซเดฏเดฒเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเดพเตป / dist, เดเดเตเดณเดคเดฒเดคเตเดคเดฟเตฝ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดคเต http-server
, เดเตเดเดพเดคเต เดฆเตเดตเดพเดถเตเดฐเดฏเดคเตเดคเดฟเตฝ เดชเดพเดเตเดเตเดเต spa-http-server
เด
เดเตเดเดจเต Vue เดฑเตเดเตเดเตผ เดถเดฐเดฟเดฏเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต. --push-state เดซเตเดฒเดพเดเต index.html-เดฒเตเดเตเดเต เดฑเตเดกเดฏเดฑเดเตโเดเต เดเตเดฏเตเดฏเตเดจเตเดจเต. 1 เดธเตเดเตเดเตปเดกเต เดฎเตเดฒเตเดฏเดฎเตเดณเตเดณ -c เดซเตเดฒเดพเดเต เดเตเตผเดคเตเดคเต http-เดธเตเตผเดตเตผ เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเตเดเตพ เดเดพเดทเต เดเตเดฏเตเดคเดฟเดฒเตเดฒ. เดเดคเตเดฐเต เดชเดฐเตเดเตเดทเดฃ เดเดฆเดพเดนเดฐเดฃเดฎเดพเดฃเต; เดเดฐเต เดฏเดฅเดพเตผเดคเตเดฅ เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเตฝ nginx เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเดพเดฃเต เดจเดฒเตเดฒเดคเต.
Vuex เดธเตเดฑเตเดฑเตเดฑเดฟเตฝ เดเดเตเดเตพ เดเดฐเต เดซเตเตฝเดกเต เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเต apiHost: 'http://localhost:3000'
, NodeJS Api เดชเตเตผเดเตเดเต เดฐเดเดฟเดธเตเดฑเตเดฑเตผ เดเตเดฏเตเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดฟเดเดคเตเดคเต. เดเตเดฒเดฏเดจเตเดฑเต เดญเดพเดเด เดคเดฏเตเดฏเดพเดฑเดพเดฃเต. เดเดชเตเดชเตเตพ เดเตเดฒเดฏเดจเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเดฟเดจเตเดจเดฟเดฒเตเดเตเดเตเดณเตเดณ เดเดฒเตเดฒเดพ เด
เดญเตเดฏเตผเดคเตเดฅเดจเดเดณเตเด เด url-เดฒเตเดเตเดเต เดชเตเดเตเดจเตเดจเต.
NodeJS เดธเตเตผเดตเตผ API
เดซเตเตพเดกเดฑเดฟเตฝ /server
เดธเตเดทเตเดเดฟเดเตเดเดพเตป server.js เดเดชเตเดชเด เดกเตเดเตเดเตผเดซเดฏเดฒเตเด:
FROM node:10
WORKDIR /server
COPY ./package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
ะ server.js เดธเตเดเดฟเดชเตเดชเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต URL เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเดจเดพเดฏเดฟ const url = 'mongodb://mongo:27017/';
. เดเตเดฒเดฏเดจเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดเตเดฐเตเดธเต-เดกเตเดฎเตเดฏเตเตป เด
เดญเตเดฏเตผเดคเตเดฅเดจเดเตพ เด
เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต:
const clientUrl = 'http://localhost:8081';
const corsOptions = {
origin: clientUrl,
optionsSuccessStatus: 200, // some legacy browsers (IE11, various SmartTVs) choke on 204
};
app.use(cors());
app.all('/*', (req, res, next) => {
res.header('Access-Control-Allow-Origin', clientUrl);
res.header('Access-Control-Allow-Headers', 'X-Requested-With');
next();
});
app.get('/getProducts', cors(corsOptions), (req, res) => {
products.getContent
.then(data => res.json(data), err => res.json(err));
});
app.get('/getUsers', cors(corsOptions), (req, res) => {
db.getUsers()
.then(data => res.json(data), err => res.json(err));
});
เดคเตเดฐเตเดฎเดพเดจเด
เดเดจเดฟ เดจเดฎเตเดเตเดเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดกเดฏเดฑเดเตเดเดฑเดฟเดฏเดฟเดฒเตเดเตเดเต เดชเตเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเดพเด docker-compose build
เดเดฟเดคเตเดฐเดเตเดเตพ เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด docker-compose up
เดเดฃเตเดเตเดฏเตเดจเดฑเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเดพเตป. เดเตเด 3 เดเดฃเตเดเตเดฏเตเดจเดฑเตเดเตพ เดเดฏเตผเดคเตเดคเตเด: เดธเตเตผเดตเตผ, เดเตเดฒเดฏเดจเตเดฑเต, เดฎเตเดเดเต. เดเดฐเต NodeJS เดธเตเตผเดตเดฑเดฟเดจเดพเดฏเดฟ, เดฏเตเดธเตผ เดซเตเตพเดกเดฑเดฟเดฒเตเดเตเดเต เดฒเดฟเดเตเดเต เดเตเดฏเตโเดคเต เดนเตเดเตเดเต-เดฑเตเดฒเตเดกเต เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเดพเด. เดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเดเตเดเตเดฃเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดเตเดฒเดฏเดจเตเดฑเต เดนเตเดเตเดเต เดฑเตเดฒเตเดกเต เดเดชเดฏเตเดเดฟเดเตเดเต เดชเตเดฐเดพเดฆเตเดถเดฟเดเดฎเดพเดฏเดฟ เดฒเตเดเตเดเต เดเตเดฏเตเดฏเดฃเด, เดชเตเดฐเดคเตเดฏเตเดเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต เดธเตเตผเดตเตผ ะธ เดฎเตเดเตเดเต. เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดธเตเดตเดจเด เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เด
เดคเดฟเดจเตเดฑเต เดชเตเดฐเต เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเด docker-compose up client
. เดเดฟเดฒเดชเตเดชเตเตพ เด
เดคเต เดเตเดฏเตเดฏเดพเตป เดฎเดฑเดเตเดเดฐเตเดคเต prune
เดเดฑเดตเดฟเดเดเตเดเตพ เดธเตเดตเดคเดจเตเดคเตเดฐเดฎเดพเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดเตพ, เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเตเดเตพ, เดเดฎเตเดเตเดเตพ เดเดจเตเดจเดฟเดต เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดจเตเดจเต.
เดจเดฟเดเตเดเตพเดเตเดเต เดฎเตเดดเตเดตเตป เดเตเดกเตเด เดเดพเดฃเดพเตป เดเดดเดฟเดฏเตเด
เด
เดตเดฒเดเดฌเด: www.habr.com