我已将代码缩减为我可以制作的最简单的express-js应用程序:
var express = require("express"),
app = express.createServer();
app.use(express.static(__dirname + '/styles'));
app.listen(3001);
Run Code Online (Sandbox Code Playgroud)
我的目录看起来像这样:
static_file.js
/styles
default.css
Run Code Online (Sandbox Code Playgroud)
然而,当我访问时,http://localhost:3001/styles/default.css我收到以下错误:
Cannot GET / styles /
default.css
Run Code Online (Sandbox Code Playgroud)
我正在使用express 2.3.3和node 0.4.7.我究竟做错了什么?
我是github上的一个组织的所有者,只是创建了一个repo并尝试推送但是我遇到了一个问题,即使我可以SSH正常,它也会问我的用户名:
$ ssh -T git@github.com
Hi Celc! You've successfully authenticated, but GitHub does not provide shell access.
$ git add .
$ git commit -m 'first commit'
[master (root-commit) 3f1b963] first commit
6 files changed, 59 insertions(+)
create mode 100644 .gitignore
create mode 100644 main.js
create mode 100644 package.json
create mode 100644 readme.markdown
create mode 100644 views/index.ejs
create mode 100644 views/layout.ejs
$ git remote add origin https://github.com/WEMP/project-slideshow.git
$ git push -u origin master
Username for 'https://github.com':
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?这在我之前从未发生过,但我最近也升级到git 1.7.10.3.
我正试图让一条路线覆盖/foo包括/foo它自己在内的一切.我已经尝试过使用/foo*哪些工作除了它不匹配/foo.注意:
var express = require("express"),
app = express.createServer();
app.get("/foo*", function(req, res, next){
res.write("Foo*\n");
next();
});
app.get("/foo", function(req, res){
res.end("Foo\n");
});
app.get("/foo/bar", function(req, res){
res.end("Foo Bar\n");
});
app.listen(3000);
Run Code Online (Sandbox Code Playgroud)
输出:
$ curl localhost:3000/foo
Foo
$ curl localhost:3000/foo/bar
Foo*
Foo Bar
Run Code Online (Sandbox Code Playgroud)
我有什么选择?我提出的最好的方法是路由/fo*当然不是最优的,因为它太匹配了.
我正在尝试使用富有想象力的Mock测试库测试Django应用程序时嘲笑某些东西.我似乎无法让它工作,我正在尝试这样做:
models.py
from somelib import FooClass
class Promotion(models.Model):
foo = models.ForeignKey(FooClass)
def bar(self):
print "Do something I don't want!"
test.py
class ViewsDoSomething(TestCase):
view = 'my_app.views.do_something'
def test_enter_promotion(self):
@patch.object(my_app.models.FooClass, 'bar')
def fake_bar(self, mock_my_method):
print "Do something I want!"
return True
self.client.get(reverse(view))
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我有两个文件index.html和template.html.我最感动的index.html到template.html现在的git认为我做了一个重命名当我添加这两个文件.在特定情况下是否可以防止这种情况?
我有一个问题,我希望能够获得集合的所有独特城市,我的代码看起来像这样:
var mongoose = require("mongoose"),
Schema = mongoose.Schema;
var PersonSchema = new Schema({
name: String,
born_in_city: String
});
var Person = mongoose.model('Person', PersonSchema);
Run Code Online (Sandbox Code Playgroud)
在原生的MongoDb中,我可以做到db.person.distinct("born_in_city"),但似乎没有任何等同于Mongoose.是我自己迭代所有文档的唯一选择,还是有更好的解决方案?
为了尝试使用node-mongodb-native回复者建议的底层,我尝试这样做:
mongoose.connection.db.collections(function(err, collections){
collections[0].distinct('born_in_city', function( err, results ){
console.log( err, results );
});
});
Run Code Online (Sandbox Code Playgroud)
然而,它results是空的,没有错误.我也希望能够只按名称获取所需的集合,而不是必须过滤collections返回的内容.
我们的项目通常是:
/project-name
/src
/django-project-name
etc..
readme.md
requirements.txt
Run Code Online (Sandbox Code Playgroud)
如果我打开/project-name而不是/django-project-namePyCharm强调我的导入说他们找不到它并且它试图引用src.django-project-name.app_name.models.Thing在运行Django时实际上找不到的导入.
我怎样才能让它像我在装载/djang-project-name这些东西的地方一样工作?
我试图这样做,但似乎MySQL不允许我这样做.是否有解决此问题的方法,或者我希望在我的INSERT查询中始终包含该函数?
CREATE TABLE foo(
created INT NOT NULL DEFAULT UNIX_TIMESTAMP()
)
Run Code Online (Sandbox Code Playgroud)
我知道接受CURRENT_TIMESTAMP默认值的TIMESTAMP类型,但我的客户端坚持在数据库中使用纪元时间.
我有一个具有以下权限的用户foo(它不是任何组的成员):
{
"Statement": [
{
"Sid": "Stmt1308813201865",
"Action": "s3:*",
"Effect": "Allow",
"Resource": "arn:aws:s3:::bar"
}
]
}
Run Code Online (Sandbox Code Playgroud)
然而,在我授予对经过身份验证的用户(可能适用于任何人)的完全访问权限之前,该用户似乎无法上传或执行任何操作.这仍然不允许用户更改权限,因为boto在尝试执行上传后会抛出错误key.set_acl('public-read').
理想情况下,这个用户可以完全访问bar存储桶,没有别的,我做错了什么?
我有以下内容:
var express = require('express'),
app = express.createServer();
app.get("/offline.manifest", function(req, res){
res.contentType("text/cache-manifest");
res.end("CACHE MANIFEST");
});
app.listen(8561);
Run Code Online (Sandbox Code Playgroud)
Chrome中的网络标签显示它是text/plain.为什么不设置标题?
上面的代码有效,我的问题是由链接到旧版本的express-js引起的