我无法找到合理的解决方案,因为我认为这是一个非常简单的任务.考虑source我的项目中有一些目录,其中包含所有源文件.在发展模式,我改变源文件,并咕嘟咕嘟minifies他们进入.min.js和.min.css,并将它们放入public目录(澄清,我建立一个Node.js的应用程序).
现在,我有两个分支:master生产和development开发.
master分支上的.gitignore文件.DS_Store
node_modules
source
...
Run Code Online (Sandbox Code Playgroud)
development分支上的.gitignore文件.DS_Store
node_modules
public/javascript
public/stylesheets
...
Run Code Online (Sandbox Code Playgroud)
我想要获得的行为:1)忽略缩小的文件以进行开发(每次我更改代码时它们都会被组合和缩小),但保留源代码; 2)忽略生产的源文件(因为当我$ git pull进入生产环境时我不想拥有它们),但要保持缩小.
出于某种原因,当我来回切换,从master到development,混帐完全删除一些文件,并打破了一切.例如,它擦除了每个模块的所有内容node_modules,强迫我$ rm -rf node_modules && npm install每次切换分支时都会这样做.
很感谢任何形式的帮助.
这里还描述了这个问题:使用git,我如何忽略一个分支中的文件但是在另一个分支中提交它?,但没有可行的解决方案.
我正在尝试将项目从当前的单体状态转移到微服务架构。该项目在 Node.js 中,所以我开始研究Seneca.js,尤其是它的seneca-mesh模块。将图像处理(裁剪、调整大小等)移动到微服务中似乎是最明智的第一步,因为它现在大大降低了我的应用程序的速度。
当应用程序是单体时,将某些文件传递给文件操作逻辑是没有问题的——只需从本地存储磁盘读取它。然而,对于微服务,如果我们牢记可扩展性,它就会变得更加困难。当然,我可以构建一个图像处理微服务,在同一台主机内扩展它,并在它之间共享我需要的目录,这样它们也可以从本地磁盘读取。
如果我想要一个真正可扩展的微服务,它可以在具有不同 IP 地址但不共享相同文件系统的不同机器上运行和扩展怎么办?我想也许我可以利用 Node 的流 API 并通过 HTTP 或 TCP 或套接字来回发送这些文件,或者您可以命名它。
据我所知,Seneca.js 不能以正确的方式做到这一点。当然,我可以通过 Seneca.js 将文件从主应用程序发送到图像处理服务,如下所示:
fs.createReadStream('/files/hello.jpg')
.on('data', function(data) {
seneca.act({ role: 'file', cmd: 'chunk', data: data }, cb);
})
.on('end', function(err) {
seneca.act({ role: 'file', cmd: 'end' });
})
.on('error', function(err) {
seneca.act({ role: 'test', cmd: 'error' });
});
Run Code Online (Sandbox Code Playgroud)
并分块接收:
seneca.add({ role: 'file', cmd: 'chunk' }, writeToFileCb);
seneca.add({ role: …Run Code Online (Sandbox Code Playgroud) 首先,我知道我必须return保证避免出现此警告。我还尝试按照文档中的null建议返回。考虑这段代码,我在 Mongoose 的预保存挂钩中使用它,但我在其他地方遇到过这个警告:
var Story = mongoose.model('Story', StorySchema);
StorySchema.pre('save', function(next) {
var story = this;
// Fetch all stories before save to automatically assign
// some variable, avoiding conflict with other stories
return Story.find().then(function(stories) {
// Some code, then set story.somevar value
story.somevar = somevar;
return null;
}).then(next).catch(next); // <-- this line throws warning
});
Run Code Online (Sandbox Code Playgroud)
我也尝试过(最初)这种方式:
story.somevar = somevar;
return next(); // <-- this line throws warning
}).catch(next);
Run Code Online (Sandbox Code Playgroud)
但它也不起作用。哦,我必须提到,我使用 Bluebird:
var Promise = require('bluebird'),
mongoose …Run Code Online (Sandbox Code Playgroud) 我正在为一个带有react,redux,react-router和react-router-redux的项目构建一个管理应用程序.React-router是v4.0.0,react-router-redux是v5.0.0-alpha.3(安装npm install react-router-redux@next).我正在尝试的是:
/login并呈现Login组件.对于异步操作,我正在使用redux-thunk.
import React, { Component, PropTypes } from 'react';
import { Provider, connect } from 'react-redux';
import { Route, Switch } from 'react-router-dom';
import { ConnectedRouter, push } from 'react-router-redux';
import Login from './Login';
const App = () => <h1>Dashboard</h1>;
const NotFound = () => <h1>Not found :(</h1>;
class Root extends Component {
// use componentDidMount as …Run Code Online (Sandbox Code Playgroud) javascript reactjs react-router react-redux react-router-redux
我正在尝试使用 Passport.js 和 Express-Session 实现登录功能,它运行良好,
var passport = require('passport'),
session = require('express-session'),
MongoDBStore = require('connect-mongodb-session')(session);
var sessionStore = new MongoDBStore({
uri: config.db,
collection: 'sessions'
});
var sessionOptions = {
name: 'very-secure-cookie',
secret: config.secret,
resave: false,
saveUninitialized: true,
cookie: {
secure: true,
maxAge: null
},
store: sessionStore
};
app.use(session(sessionOptions));
app.use(passport.initialize());
app.use(passport.session());
Run Code Online (Sandbox Code Playgroud)
这里,maxAge是null,意味着客户端在关闭浏览器窗口时会注销。然而,我想用客户的电子邮件地址存储一个额外的 cookie,以便在<input type="text" name="email">他们稍后回来时想要重新登录时预先填写。
我尝试过app.use()使用另一个会话对象来将电子邮件信息存储在另一个 cookie 中,但由于某种原因,该 cookie 只设置一次(第一个)。
app.use(session(returningSessionOptions));
Run Code Online (Sandbox Code Playgroud)
在任何地方都找不到任何明智的解决方案:(
哦,我不得不提一下,我考虑过将cookie-parser中间件与 一起使用express-session,但文档指出这可能会导致冲突。
node.js ×3
javascript ×2
bluebird ×1
cookies ×1
git ×1
mongoose ×1
passport.js ×1
promise ×1
react-redux ×1
react-router ×1
reactjs ×1
seneca ×1
session ×1
version ×1