我正在使用NodeJS的ExpressJS Web框架.
使用ExpressJS的人将他们的环境(开发,生产,测试......),他们的路线等放在了app.js.我认为这不是一个很好的方式,因为当你有一个很大的应用程序时,app.js太大了!
我想有这个目录结构:
| my-application
| -- app.js
| -- config/
| -- environment.js
| -- routes.js
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
app.js
var express = require('express');
var app = module.exports = express.createServer();
require('./config/environment.js')(app, express);
require('./config/routes.js')(app);
app.listen(3000);
Run Code Online (Sandbox Code Playgroud)
配置/ environment.js
module.exports = function(app, express){
app.configure(function() {
app.use(express.logger());
});
app.configure('development', function() {
app.use(express.errorHandler({
dumpExceptions: true,
showStack: true
}));
});
app.configure('production', function() {
app.use(express.errorHandler());
});
};
Run Code Online (Sandbox Code Playgroud)
配置/ routes.js
module.exports = function(app) {
app.get('/', function(req, res) {
res.send('Hello world !');
});
};
Run Code Online (Sandbox Code Playgroud)
我的代码运行良好,我认为目录的结构很漂亮.但是,代码必须进行调整,我不确定它是好还是漂亮.
使用我的目录结构并调整代码或只使用一个文件(app.js)更好吗?
谢谢你的建议!
是否可以在PostgreSQL中搜索每个表的每一列中的特定值?
Oracle 提供了类似的问题.
在开发模式下,我有以下目录树:
| my_project/
| setup.py
| my_project/
| __init__.py
| main.py
| conf/
| myproject.conf
Run Code Online (Sandbox Code Playgroud)
我使用ConfigParser来解析myproject.conf文件.
在我的代码中,使用良好的路径加载文件很容易: my_project/conf/myproject.conf
问题是:当我使用setup.py安装我的项目时,配置文件位于(感谢setup.py)/etc/my_project/myproject.conf和我的应用程序中/usr/lib/python<version>/site-packages/my_project/.
如何my_project/conf/myproject.conf在"生产"模式下在项目中引用我的文件,并my_project/conf/myproject.conf在"devel"模式下引用本地文件().
另外,如果可能的话,我想要便携式(例如在Windows上工作).
这样做的好习惯是什么?
在Python中,我有以下示例类:
class Foo:
self._attr = 0
@property
def attr(self):
return self._attr
@attr.setter
def attr(self, value):
self._attr = value
@attr.deleter
def attr(self):
del self._attr
Run Code Online (Sandbox Code Playgroud)
如您所见,我有一个简单的"私有"属性"_attr"和一个访问它的属性.有很多代码来声明一个简单的私有属性,我认为它不尊重"KISS"哲学来声明所有属性.
那么,如果我不需要特定的getter/setter/deleter,为什么不将所有属性声明为公共属性?
我的答案是:因为封装原则(OOP)说不然!
什么是最好的方法 ?
假设我有一个汽车列表:
public class Car {
private String brand;
private String name;
private String color;
public Car() { // ... }
public getName() { return name; }
// ...
}
Run Code Online (Sandbox Code Playgroud)
// Suppose that I have already init the list of car
List<Car> cars = //...
List<String> names = new ArrayList<String>();
for (Car c : cars ) {
names.add(c.getName());
}
Run Code Online (Sandbox Code Playgroud)
如何缩短上面的代码?简而言之,如何在List的每个元素上调用方法?
例如,在Python中:
[car.name for car in cars]
Run Code Online (Sandbox Code Playgroud) 我有一个简单的表格,有四个输入.当我提交表单时,我想使用GET http方法.
例如:
aaa : foo
bbb : ____
ccc : bar
ddd : ____
Run Code Online (Sandbox Code Playgroud)
我想要这个查询字符串:
/?aaa=foo&ccc=bar
Run Code Online (Sandbox Code Playgroud)
问题是我有这个查询字符串:
/?aaa=foo&bbb=&ccc=bar&ddd=
Run Code Online (Sandbox Code Playgroud)
如何从查询字符串中的表单中删除空字段?
谢谢.
在没有线程或子进程的情况下启动瓶子网络服务器时,没有问题.要退出瓶子应用程序 - > CTRL+ c.
在一个帖子中,我如何以编程方式停止瓶网服务器?
我没有stop()在文档中找到方法或类似的东西.有原因吗?
在guice中,@ Singleton范围不涉及Singleton模式.
根据"Dhanji"的"依赖注入"一书:
很简单,单例的上下文就是注入器本身.单身的寿命与注射器的寿命有关(如图5.8所示).因此,每个注射器只创建一个单例实例.重要的是要强调最后一点,因为多个喷射器可能存在于同一应用中.在这种情况下,每个注入器将保存单例范围对象的不同实例.

是否可以通过多个模块和多个喷射器共享同一个Singleton实例?
我有以下加密数据:
U2FsdGVkX1+21O5RB08bavFTq7Yq/gChmXrO3f00tvJaT55A5pPvqw0zFVnHSW1o
解密它的传递是: password
(这是来自胡言乱语的例子)
在使用openssl的命令行中:
echo "U2FsdGVkX1+21O5RB08bavFTq7Yq/gChmXrO3f00tvJaT55A5pPvqw0zFVnHSW1o" | openssl enc -d -aes-256-cbc -a -k password
输出是:
Made with Gibberish\n
使用我的NodeJS应用程序:
var decipher = crypto.createDecipher('aes-256-cbc', "password");
var dec = decipher.update("U2FsdGVkX1+21O5RB08bavFTq7Yq/gChmXrO3f00tvJaT55A5pPvqw0zFVnHSW1o",
'base64', 'utf8');
dec += decipher.final('utf8');
Run Code Online (Sandbox Code Playgroud)
我TypeError: DecipherFinal fail在这decipher.final行有以下错误.
我错过了什么吗?谢谢.
也许我经常使用git stash,但当我想在项目中丢弃我的实验时,这就是我通常做的事情.
问题1:
问题2:
我怎么能把这个文件解压缩到单独的文件夹?
或其他选项:如何为该藏匿文件启动可视化差异工具?
python ×3
java ×2
node.js ×2
aes ×1
bottle ×1
configparser ×1
cryptography ×1
express ×1
forms ×1
get ×1
git ×1
grep ×1
guice ×1
list ×1
oop ×1
openssl ×1
postgresql ×1
properties ×1
pythonpath ×1
query-string ×1
singleton ×1