我在写一个React应用程序,它现在状态良好。现在,我想添加一个后端来访问Mongodb文档并创建一个REST API,就像在现有项目的顶部添加一个图层一样。我希望Express可以在相同端口上收听我的React应用程序。我正在使用Gulp,使用其默认任务启动应用程序。如何使用Gulp将Express添加到React应用程序?
我找不到一种方法来做到这一点,如果app.listen
使用相同的端口作为它的反应部分,我得到port already in use
(显然)。
这里是我的gulpfile.js
"use strict";
var gulp = require('gulp'),
connect = require('gulp-connect'),
open = require('gulp-open'),
browserify = require('browserify'),
reactify = require('reactify'),
source = require('vinyl-source-stream'),
eslint = require('gulp-eslint'),
http = require('http'),
concat = require('gulp-concat');
var config = {
port: process.env.PORT || 1991,
devBaseUrl: 'http://localhost',
paths: {
html: './src/*.html',
js: './src/**/*.jsx',
css: './public/stylesheets/**/*.css',
dist: './dist',
mainJs: './src/main.jsx'
}
};
//start a local dev server
gulp.task('connect', function() {
connect.server({
root: ['dist'],
port: config.port,
base: config.devBaseUrl,
livereload: true
});
});
gulp.task('open', ['connect'], function() {
gulp.src('dist/index.html')
.pipe(open({uri: config.devBaseUrl + ':' + config.port + '/'}));
});
gulp.task('html', function() {
gulp.src(config.paths.html)
.pipe(gulp.dest(config.paths.dist))
.pipe(connect.reload());
});
gulp.task('js', function() {
browserify(config.paths.mainJs)
.transform(reactify)
.bundle()
.on('error', console.error.bind(console))
.pipe(source('bundle.js'))
.pipe(gulp.dest(config.paths.dist + '/scripts'))
.pipe(connect.reload());
});
gulp.task('css', function() {
gulp.src(config.paths.css)
.pipe(concat('bundle.css'))
.pipe(gulp.dest(config.paths.dist + '/css'))
.pipe(connect.reload());
});
gulp.task('lint', function() {
return gulp.src(config.paths.js)
.pipe(eslint({configFile: 'eslint.config.json'}))
.pipe(eslint.format());
});
gulp.task('watch', function() {
console.log('Files have been changed... Reloading...');
gulp.watch(config.paths.html, ['html']);
gulp.watch(config.paths.css, ['css']);
gulp.watch(config.paths.js, ['js']);
});
gulp.task('default', ['html', 'js', 'css','lint', 'open', 'watch']);
这可能吗?如果是这样,我该怎么做?
当你说“我想添加一个后端Express”时,你的意思并不完全清楚。你后端的目标是什么?它看起来像你已经有吞吐任务,启动一个简单的服务器,并生活重新加载文件的变化。你想要快递服务器做什么? –
我想添加一个REST API并管理mongodb文档。 是的,该应用程序状态良好,但它只是一个前端应用程序。关键是我希望它是一个完整的应用程序。 – Hideya
好的。你打算主持这个项目的计划是什么? AWS? Digital Oceaen上的专用服务器/微滴? Azure的? –