Vue+Express를 통한 전면 및 후면 분리
1. Vue와 Express는 어떻게 앞뒤 분리를 실현합니까
Express를 접할 때 html,ejs,jade 같은 템플릿을 사용하여 이루어진View층 페이지 개발이 더 많다.우선 저는views 디렉터리에서 직접 사용하지 않았습니다.유사함 대신 vue 접두사 파일.ejs 템플릿 파일의 생각입니다.내가 먼저 생각한 것은 먼저 백엔드 프로젝트를 구축한 다음에 vue-cli로 백엔드 프로젝트를 생성하는 것이다. 그러나 두 프로젝트의 기초 구조가 모두 건설되었는데 어떻게 그 둘을 유기적으로 결합시킬 수 있겠는가?
해결 방향
이전에 자신이 Vue로 프로젝트를 하는 과정에서도 전후단이 분리되었다. 단지 전단은 하나의 프로젝트이고 후단은 자바의 프로젝트이다. 그러면 전후단의 상호작용을 하려면 일반적으로 전단 코드를 포장한 후에 후단 프로젝트의 특정한 디렉터리에 놓는다.전단 패키지: vue-cli는 웹 패키지 패키지를 사용합니다. 패키지 명령을 실행하면 루트 디렉터리에 dist 폴더를 생성합니다. 이 폴더에는 전단의img, css, js 파일이 포함되어 있습니다.express에서 정적 자원을 제공합니다:express 생성기를 사용하여 생성된 프로젝트 프로젝트에서는 일반적으로 ejs 템플릿 파일을views 폴더 밑에 놓고 express에 내장된 중간부품이 있어 정적 자원에 접근하는 문제를 해결할 수 있습니다.
app.use(express.static('public')) //public , , express
같은 정적 자원에 접근하면express에서.static () 중간부분에 vue-cli가 포장된 디스켓 폴더 이름을 쓰면 됩니다. 전방 프로젝트의 정적 자원에 접근할 수 있습니다.
2. 앞뒤가 분리된 후에 템플릿이나 페이지를 어떻게 렌더링합니까
Express+ejs(jade) 모드에서 보기 템플릿을 보여주면 주로 ejs(jade) 템플릿을 통해 렌더링하는 방식이지만 Express+Vue 모드에서는 Vue가 한 페이지의 응용 프로그램이기 때문에 Express는 어떠한 경로에 대한 처리도 한 페이지(html 방식)만 되돌려줍니다.
npm run build
를 사용하여 템플릿을 렌더링하고 되돌려준다는 것을 깨달았습니다.res.render('about')
views 폴더 아래의about을 가리킨다.ejs 템플릿 파일.// /dist/index.html
app.get('*', function(req, res) {
const html = fs.readFileSync(path.resolve(__dirname, '../dist/index.html'), 'utf-8')
res.send(html)
})
이렇게 하면 전후단 분리도 잘 되고 페이지 방문도 ok가 된 다음에 전방 페이지 논리와 후단 루트 처리와 데이터베이스 조작을 계속 개발할 수 있다.
전재 대상:https://www.cnblogs.com/sminocence/p/10370565.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.