我无法找到合理的解决方案,因为我认为这是一个非常简单的任务.考虑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