小编Cur*_*101的帖子

node.js 在 JPEG 中创建/修改 Exif

是否有允许在 JPEG 文件中创建/修改 EXIF 和 IPTC 部分的本机 Javascript 模块?

注意:我已经有了从 iPhone 和图像一起接收的图像的 Exif 数据。由于图像本身不包含所有元数据,因此我想将其合并并保存在我的服务器上。

我在搜索中遇到了一个单模块,但它似乎被放弃了,它从未实现过编写 EXIF。

https://github.com/logicalparadox/exifdata

有谁知道我可以使用的纯 Javascript 模块吗?

我确实找到了一个可以完成这项工作的 C 库“libexif”。我还没有测试过。我仍在尝试使用 Javascript。

使用 libexif 将 exif 数据写入 jpg

提前致谢。

javascript exif node.js

5
推荐指数
1
解决办法
2399
查看次数

node.js - sqlite3读取表中的所有记录并返回

我正在尝试读取sqlite3表中的所有记录并通过回调返回它们.但似乎尽管使用序列化,这些调用仍然是ASYNC.这是我的代码:

var readRecordsFromMediaTable = function(callback){

    var db = new sqlite3.Database(file, sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE);

    var allRecords = [];

    db.serialize(function() {

        db.each("SELECT * FROM MediaTable", function(err, row) {

            myLib.generateLog(levelDebug, util.inspect(row));
            allRecords.push(row);

        }

        callback(allRecords);
        db.close();

    });

}
Run Code Online (Sandbox Code Playgroud)

当回调被触发时,数组将打印'[]'.

是否有另一个我可以进行的调用(而不是db.each)将一次性给我所有行.我没有必要在这里迭代每一行.

如果没有,我如何读取所有记录,然后才调用带有结果的回调?

sqlite node.js

4
推荐指数
3
解决办法
1万
查看次数

sqlite3使用节点使用回调创建数据库

我已经搜索了如何在Node.js中创建带有回调的sqlite3数据库,但无法找到任何链接。有人可以向我指出文档或提供2-3行代码示例以实现以下目的:

  • 创建一个sqlite3数据库,如果由于某种原因创建失败,则会捕获错误。

这是我尝试过的:

     let dbCreate = new sqlite3.Database("./user1.db", sqlite3.OPEN_CREATE, function(err){

        if(!err){
           logger.infoLog("Successfully created DB file: " + dbFileForUser + " for user: " + username );
        } else {
           logger.infoLog("Failed to create DB file: " + dbFileForUser + ". Error: " + err );
        }
     });

     dbHandler[username]  = dbCreate;
Run Code Online (Sandbox Code Playgroud)

执行此操作时,出现以下错误:“无法创建数据库文件:./database/user1.db。错误:错误:SQLITE_MISUSE:错误的参数或其他API滥用”

这个没有回调的调用就可以了。

var customDB = new sqlite3.Database(“ ./ custom.db”,sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE);

但是在这种情况下,我将不知道在创建数据库时是否遇到任何错误。

sqlite node.js

4
推荐指数
1
解决办法
3961
查看次数

剧作家禁用网页缓存,以便我可以在向下滚动后获取新元素

我正在使用 playwright(Firefox 浏览器)来抓取一些网站。当我向下滚动页面时,许多网站会加载更多内容。问题在于, await page.$$("")方法没有获取加载的新内容。

但是如果我在滚动后在控制台上执行document.querySelectorAll(""),那么我也可以获得更新的内容。

我看到 puppeteer 有一个设置page.setCacheEnabled(enabled)允许禁用缓存,但我在 playwright 中找不到类似的东西。

javascript web-scraping puppeteer playwright

3
推荐指数
1
解决办法
1万
查看次数

Javascript (Node.js) 将 json 解构为现有变量

我想知道是否可以在方法中声明一次变量,然后多次重用它们来捕获解构的返回值。

例如:

  function verifyStatusAsSignedIn(url, cred){

     // code truncated

     return { 'error' : false, 'status': true }
  }
Run Code Online (Sandbox Code Playgroud)

我可以同时进行声明和解构 JSON。

 const { error , status } = verifyStatusAsSignedIn(url, cred);
Run Code Online (Sandbox Code Playgroud)

但是我有更多方法可以调用,它们也将返回带有错误和状态的 JSON,就像方法 'verifyStatusAsSignedIn()' 所做的那样。

理想情况下,我想这样做:

  let error, status;

  { error, status } = verifyStatusAsSignedIn(url, cred);

  //  handle or respond to error and status.

  { error, status } = nextStep(val1, val2);

  // handle or respond to error and status
Run Code Online (Sandbox Code Playgroud)

但这给了我一个 lint 警告“预期的声明或声明。

是否可以重用现有变量来解构 json 对象?

javascript destructuring node.js

2
推荐指数
1
解决办法
368
查看次数

PhotosFramework 将资产分配给相册

我看过几个例子,但无法弄清楚这个。我觉得我在这里错过了一些简单的东西。

在我的应用程序中,我想在特定相册 (ABC) 中拍摄图像并将其添加到我专门为此应用程序创建的另一个相册 (XYZ) 中。这两个相册都可以从 IOS 的默认照片应用程序中看到。

如果我保存图像的另一个副本,我可以成功地将图像分配给相册 XYZ。即如果我现在回到相机胶卷,我会看到同一图像的两个副本。一张分配给专辑 ABC,另一张分配给 XYZ。这不是我想要的。我有数以千计的图像将被分配到相册 XYZ,我不希望两个副本不必要地占用空间。

这是我将图像副本保存到新相册的代码:

-(void) saveImage:(UIImage*) imageToSave toCollection:(NSString *) collectionTitle forRowNumber:(long) rowNumber{

    NSLog(@"entered %s", __PRETTY_FUNCTION__);
    __block PHFetchResult *photosAsset;
    __block PHAssetCollection *collection;
    __block PHObjectPlaceholder *placeholder;

        // Find the album
    PHFetchOptions *fetchOptions = [[PHFetchOptions alloc] init];

    fetchOptions.predicate = [NSPredicate predicateWithFormat:@"title = %@", collectionTitle];
                // this is how we get a match for album Title held by 'collectionTitle'

    collection = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAny options:fetchOptions].firstObject;

        // check if album exists
    if (!collection)
    {
        [[PHPhotoLibrary …
Run Code Online (Sandbox Code Playgroud)

objective-c photosframework

0
推荐指数
1
解决办法
876
查看次数